added EventEmitter and expose listener functions