Use `protected` and not `private` visibility, unless there is an exceptional, compelling reason for `private`. If there is, you need to document why. :)