add default ctors and copy op