Use an ORM to create separate models from their services. This will simplify all the serialization and saving/syncing. Make sure to program to interfaces so that I'm not locked into the implementation of the specific ORM