add generic type option