Re-create deep level changed objects in memory while keeping the same reference for unchanged objects