copy constructors for deep hierarchies