Refactor to make better use of common/js/ViewNext to remove boilerplate code.  Also Added event bus