Breaking changes from previous version
Implemented Best Practices, following:John Papa's Guide
Using Controller AS syntax
Wrap Angular components in an Immediately Invoked Function Expression (IIFE)
Declare modules without a variable using the setter syntax
Using named functions