[major] allow cache to be passed