interface for controller