consistently define copy constructor and assignment operator remove superfluous casts initialize member variables in constructor avoid double assignment
consistently define copy constructor and assignment operator remove superfluous casts initialize member variables in constructor avoid double assignment