I am using inheritance but a lot of articles are recommending users to use composition to avoid the "Diamond Problem".
Again, without seeing your code, it's impossible to say if your inheritance structure is appropriate. Use the "is a" and "has a" rules and you should be okay. If the "is a" rule applies, then inheritance is appropriate. If the "has a" rule applies, then composition is indicated.
Here is my respiratory which includes all my source code, it is a mess at the moment, since I have been doing a lot of debugging and testing new stuffs.