controller restructured