added various copy constructors