ui: refactor controllers, routes to use promise hash, comments