add DeepCloneInterface to solve deep cloning issues