restructuring controllers