Functions that take a callback should return a promise if no callback is provided.
Functions that take a callback should return a promise if no callback is provided.