- use ivar instead of self.property