expanded calc.rb