(Not sure how best to post my solution, so I'm just replying to Florian's message...figured it might be nice to keep the solutions all in the same thread, at least...) I agree with Florian, it was a great quiz. I'm looking forward to the next one, too! My solution is posted here: http://www.jamisbuck.org/ruby-quiz-01-jamis-buck.zip I did it using Copland, both to demonstrate Copland, and to "test" Copland (to see if I ran into anything that needed fixing or adding). Although the assignment itself was really too small for IoC, it was still fun. I just ended up with many tiny classes. :) I implemented a few other keying algorithms: shuffle (which shuffles the deck according to a given seed value) and reverse (which just reverses the order of an unkeyed deck). -- Jamis Buck jgb3 / email.byu.edu http://www.jamisbuck.org/jamis