Made properties readonly (The motivation for the project was to make immutable objects less excruciating to create)