add a `clone_from` for efficiency