make types mutable

This is what I had in mind for #47

No docs yet.

What code style is being used in the project? Intellij was going insane because the format isn't consistent across all the files. How many spaces/tabs etc?

The formatting issue resulted in entire files appearing as if they've been changed when  only the setters have been added