Added Controller.GetState, ControllerState class and tests