begin a long and painful process of redoing a lot of serialization / deserialization code