Copy on set for complete immutable behaviour