removed getPath, and removed cacheable and added volatile