first pass at serializing