events, require refactor, mocha tests
require refactor, events, mocha tests