Small Promise is an implementation of the promise A+ spec