refactored controllers +