Hi, Despite getting a bit long, my answer to this week's quiz is still mostly a monolithic file: http://www.dave.burt.id.au/ruby/phonepad/phonepad.rb But it needs this for its slick (and default) LetterWise tap method (unzipped): http://www.dave.burt.id.au/ruby/phonepad/predict3.rb.zip So, to describe my solution. I added 2 interfaces. I posted the raw terminal-based one earlier, which is based on JEGIII's (hopefully) cross-platform code. I have also added a TK interface, which plugs neatly in to Hans' platform. And I added 3 input translators. The first is good old MultiTap, which is standard on old dodgy phones that don't have T9 dictionary entry. The second is one I found in a paper from MIT no less that boasts even slower text entry than MultiTap -- I think that's quite an effort. The third is simply an implementation of the LetterWise method from the paper linked to by the quiz itself. I generated letter frequency data, which is a big part of the LetterWise method, from a smidgen over 65MB of plain-text modern novels and movie scripts, using the following two scripts (the latter has 2 versions): http://www.dave.burt.id.au/ruby/phonepad/1_wordfreq.zip http://www.dave.burt.id.au/ruby/phonepad/2_predict3_rb.zip http://www.dave.burt.id.au/ruby/phonepad/2_predict3_yaml.zip The output of the first (unique words and respective frequencies thereof) could also be used to create a dictionary for the T9 entry method. Cheers, Dave