(changed) refactored controllers