modified topicEmitter to use newListener and removeListener events