moar work on promises