generalize classes and interfaces