Ruby 1.8 compatible