One of the best introductions to OO I've read a little book by Gary Entsminger called _The Tao of Objects: A Beginner's Guide to Object-Oriented Programming_. It's out of print so you may have to hunt for it on bookfinder.com. The code examples are dated (and in C++ and Pascal) but they are really superfluous anyway. If you want to understand why OO was born and what it can do for you, this is a good place start. It's short, sweet, and as motivational as a technical book ever was. Once you get excited about OO and begin using it the first design rule to learn is composition vs. inheritance. There is a good chapter on the subject in _Java Design_ by Peter Coad. After that learn how to write unit tests and begin learning design patterns. The classic text there is _Design Patterns_ by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, commonly called the Gang of Four or GoF, but the content of the book has been reproduced many times in various other texts and using different languages for examples. Any of those that contain a full catalog of the major GoF patterns will do. Eventually you'll want to read _Refactoring: Improving the Design of Existing Code_ by Martin Fowler, but some experience using design patterns will help. As far as I know there are no books on design patterns which use Ruby for code examples. If Dave is listening he might note that it would be an interesting project given that most design pattern texts are based on languages which are statically typed. It would be interesting to see what gems a pattern book for a dynamically typed language would contain. John-Mason Shackelford Software Developer Pearson Educational Measurement 2510 North Dodge St. Iowa City, IA 52245 ph. 319-354-9200x6214 john-mason.shackelford / pearson.com http://www.pearson.com/