compatible with Ruby 1.9.3