add emitter
work on dependencies pattern