refactor emitter methods