add generic types