I cleaned this up by replacing setEnabled()/handleToggleEnabled() with a single public API, toggleEnabled().  (Which is also the command handler).