Why do we need `protected` here? I don't think we're going to subclass this anytime soon.