Use properties instead of fields for the data classes

- keep the interface the same for now
- these will be changed to PascalCase later