updated ControllerReader