add listeners and emmitters