reworking how incremental cache works