made it so non-private properties default to being immutable. Added much better support for reporting immutability errors