modify for ruby 1.8 support