Update Promise

- Promises/A+ compliance
- basic tests