restructured controllers