rely on the compiler-generated copy/assign