Looks good overall, only made a couple small changes to make it more Rubyish.