controllers finally refactored