public Object deepClone() { var clone = new GeneticData(tag); foreach (KeyValuePair<String, IDeepClonable> entry in data) { clone.set((String) entry.Key.Clone(), (IDeepClonable) entry.Value.deepClone()); } return clone; }