To prevent cached data from being modified recursively apply Object.freeze(data) to the data object. My be appropriate for arguments too (are currently always cloned)