implemented the SerializationSystem, tests pass