only slice for shallow copy after validating args