Replace the callback with a promise object, so we can return the token from/to information immediately, and avoid flicker