add test for readonly attributes (like countries).
move logic to transform input data into what actually gets written to the model (in #to_nested_hash) to a separate representer module.
same for logic to write/sync data to model.