From: "Jan E." Date: 2012-10-02T05:34:42+09:00 Subject: Re: still learning by doing - connecting rooms in a game Hi, the item does get pushed into the array, but when you call Player#satchel again, the variable @satchel is reset to ['test']. So the previous array with the new item will be overwritten. Check it: player = Player.new 'testname' player.satchel << 'testitem' p player.instance_variable_get :@satchel player.satchel # this resets @satchel to ['test'] p player.instance_variable_get :@satchel So you have to change those methods. This isn't good style, anyway, because a getter method is supposed to do nothing but get or calculate a certain value. It shouldn't change the object (except maybe caching of a calculated value). When you want to set default values, do it in the initialize method. -- Posted via http://www.ruby-forum.com/.