Added promise, cache and logger