Added Extendable interface and refactored ParameterizedType to allow Extension of ParameterizedType