compatible with ruby 2.1.0