Further improvements, support for generic types is done