split controller to separate concerns

should start using directives soon..