How do you deal with a class that is nicely designed, but you want to add a new function to it, which doesn't really fit in the context of the original class? I suppose the options are to modify the original class, or start a new class that inherits from it. But even still, it seems wrong for me to start a new class. Here's an example. What if I made a class that describes a video file. Let's call it Class Video. Methods are getNumberOfFrames, getFrame, getResolution, etc. Now suppose I want to add a new method called convertToMPEG. I don't know if it really fits into the context of the Video class, and if I inherited the Video class, what would I call the new class? I feel like adding that method ruins the "purity" of the original class.