ported all of the serialization code to using TypeLists for members, deserialization still needs work