Version 2
Replace command and handlers with listeners