More controller code pushed to service layer