add support for generics types