Ruby 2.0+ required