add generalized 'ngrams? fn