added an internal bus
changed tests to .unittests
rearchitect to an event driven approach
merge grunt