Modularized server-side (split controllers / services)
+ add Q for client-side promise