Create Promise abstraction.
Refactor.