added custom cache feature