Angular.js component oriented architecture