Decouple internal management of promises