define event emitter, impl trigger, add listener, fire trigger