caching for faster building