I like this, but it should use Ruby 1.9 hashes and should be more verticle