Rework the js handler
Add the register hook for listeners
Remove the commander module
Merge remote-tracking branch 'upstream/v2' into v2