add copy constructor, assignment operator, destructor, etc