finished the first pass on the serialization deserialization