Promises A+ implementation