Promises/A Plus Implementation