Add dispatcher of events
Add exit_program to dispatcher
Migrate ButtonSwitch to pubsub events model