Changed Generic type getter
Changed types representations from Class to Type interface. It should
give much flexibility.