It was inspired by Node.js EventEmitter