realized that refcounting means nontrivial copy construct