[event] changed: Subscribe|Unsubscribe -> On|Off
[event] changed: make sure event cannot be fired from its handler