added option USE_CACHE