Angular heavily uses modules as part of the framework’s architecture. This is about collecting code with a single reason for existing. A directive is an extension of HTML through custom elements. Attribute directives let you alter the properties of an element. Structural directives change the layout by adding or removing elements from the DOM. Observable services are patterns that allow you to effectively deal with data — allowing you to parse, modify and maintain data in an event-based system