emmitters refactor