add caching for dependencies