Added generic support to classes and interfaces