Extend EventEmitter using typescript
Create run method.
Comment the code and refactor.
More comments, fix possible bug.