yet another event emitter component