enable/disable caching should be interface functions not internal functions