We should be able to use non-public getters and setters. Also, we will likely need special handling for properties that are inherited from a base class but have a private setter in the base class implementation, but that bit can be a TODO for now.