Added caching to set data
Added deep cloning of data
Removed TODO for testing of setting + cache since it is usually not a bottleneck