fixed copy ctor and assignment