Cacheimplementation

Insted of merging the branch i will add them manually to the master