refactored emit.