cleaning up the architecture to rely less on Buses
massive refactoring to use Ractive.js