loosen up operator=, reset -> cleanup