set generic type