refactors Move - renames encode to encodeAndPack for clarity; splits decode into unpack and decode