Components tend to have internal logic and properties that are shielded or hidden from the larger application. The class definition for GuessTheNumberComponent operates as a blueprint for the component, but the script inside it does not run until we have created an instance of the component. Angular 2 is known for taking the pain out of JavaScript development, and enabling more organized, readable, and testable code.This book builds three apps with varying degrees of complexity. That event triggers the change detection cycle, which identifies that the noOfTries property that is being used in the view has changed. In software development, components are logical units that can be combined into larger applications. We touched on app initialization earlier when we created the app.module.ts and main.ts files. However, as the game progresses, this number will be updated with the value of the guess as it changes. In fact, modules are at the core of Angular itself. In short, this is the first step towards separating a component from the rest of the page and making it possible to become truly self-contained. For example, Telerik has released Kendo UI for Angular: http://www.telerik.com/kendo-angular-ui/. But this does not happen by magic, of course, and in order to make effective use of Angular, you need to understand how it updates these values as they change. The asterisk * in front of ngIf is a simplified syntax that Angular, under the hood, expands into an HTML5