controler interface