The exchange object model exposes everything as public fields. This makes it impossible, or at least very hard, to provide intelligent behavior when fields are accessed. For example:
- automatically closing the old entity if a new one is set
- providing alternative views of the entity (json, xml, string, etc)
- lazy creation of form/cookie data.