A sequence of steps for demonstrating important principles when writing directives with AngularJS