cache is mandatory