use deriving for DeepClone