emitter.lisp refactor