guarantees that the cache directories exist, so no need to test for them later on