From: Peter Hickman Date: 2002-07-10T18:51:50+09:00 Subject: Re: Case expressions and LHS of assignment.... Perhaps you could use an array to hold you instance variables rather than the 3 seperate ones. This then gives def initialize @values = Array.new (1..3).times { @value << "Initial" } end def assign(x,y) @values[x] = y end Even shorter (especially without error checking :-) ) and much much clearer.