adding eventemitter to abstract