emitEvent now returns Future