Step 1: template, expressions, simple directives
Step 2: two-way-data-binding
Step 3: show-directive
Step 4: dependency-injections