work in progress
work in progress, now with dictionaries for faster searching.