Created an exception handling system an OnException event. Moved the async exception handler to OnAsyncException. Now if OnException is assigned and non-async code is used, if an exception is raised it gets passed to the handler.
Added two new methods that don't use the cache name during the key creation.