is the deep clone purely for deep cloing the headers? We could just explicity deep clone headers and do everything else implicitily.