enh: first pass at serialization