separated out the directives, controllers and factories