added complete cache system