Agreed, however I am not super happy when using inheritance. Rather than avoiding complexity in this case it's increasing it in my opinion.

Also, even though private method can be accessed, I guess we should make explicit that a method should be used by subclasses and `private` does not highlight this. Would you agree?