I feel like there should be away for me to read from the back and move things over directly instead of having a temporary Vec for it, but I'm not sure how this would work with the owner-checking, so I didn't try.