some of the framework for emitters