more work on serialization and data model