The pure OOP approach requires inheritance/subclassing to extend a class. So in this case the straight solution should be add fields/properties/methods to the root class. The price to pay for that would be the modification of code in the external library/component. If this is unacceptable or impossible, you can use a class helper for the root class, in order to add features that are then inherithed by subclasses. However class helpers have some limitations, among others in this case you can't add fields to the 'helped class', nor properties relying on backing field, but only methods and properties that don't refer to backing fields. This could be a solution for the problem. However notice that, in general, the use of class helpers by design is considered bad practice.