storing works on the cache instead of removing them
brushing and refacotring a little