Reinventing wheels in Ruby