fully supporting cache