added caching and ability to apply/cancel caching mechanism for basic operations