To be fair they may actually know there stuff but from a didactic point-of-view it is very difficult introduce a `FactoryProvider` (or to a lesser extent even an `HTTPClient`) alongside basic OOP concepts.
Have Logger with StdoutLogger as basic example of it
Then FileLogger that extends it with few functions related to files
Then DBLogger with few functions related to logging to database
Then TestLogger for integrating with test framework