refactor to use emitter manager, events
v0.3