Phase 2 - Cleaned up controllers, moved some logic into usermodel.