Throw custom exceptions instead of core
Add the domain name to cache dir path