parsing is about 33% faster due to using bigram cache
cleanup
add length
cleanup