implemented basic ControllerFactory