Use new ctrl.states pattern