smoother apply/cancel handling