Complete overhaul. Now uses Object::Tiny::RW::XS. Added move_original.