add EventEmitter.js from related projects. Using centralized classes to manage such doings and using events to organize relationships of different behaviours