https://medium.com/@jdxcode/best-practices-for-building-angular-js-apps-266c1a4a6917