we use protected instead of private, unless there's a specific reason to prevent subclasses from overriding something.