ruby 1.9/2.0 compatibility