components and pages mixin common Controller class, with event emission helpers and a dom object for adding dom event listeners