[ZT] refactor: using promise instead of callbacks in controllers; extract methods in User model