supports ruby 1.9+