implem copy constructor