This has the advantage of accepting arbitrary values, even those that aren't necessarily the right type. Now Counter.new('2') will work with that value being converted automatically. This is the fundamental principle of Duck Typing. If it can give you a number, it's as good as a number.