restructure controllers