use method rather than ivar directly