Heavily inspired by this: http://www.toptal.com/angular-js/a-step-by-step-guide-to-your-first-angularjs-app