TODO TODO Update cache_size if there is not more free memory. TODO Close/delete tmp file when object is destroyed of garbasecollected.