some owning_ptr work, hardly finished as the standard
is terrible on this point.