add fast, dictionary-based version; revise README