Promises implementation.
