only clone if required