adding more tests and changing some stuff to mirror es6-promise behavior