structure of controller