add generic type