add generic tyoe