Metaprogramming.

I'm not sure if you learned anything about this yet, but if not... ;)
Merge pull request #1 from steveklabnik/master

Metaprogramming