- Implemented promises instead of callbacks