mixin emitter, don't need inherit