use partial and consolidate controllers