From: Lennon Day-Reynolds Date: 2004-07-16T08:44:40+09:00 Subject: Re: Stumped newbie... You could try something like this: ---begin--- class Gate @@gates = Array.new def Gate.[](key) @@gates[key] end def Gate.<<(g) @@gates << g end def Gate.each @@gates.each { yield } end def initialize @state = rand(2) @@gates << self end def state @state end def update @state = @@gates.first.state self end end g = Gate.new => # h = Gate.new => # g.state => 1 h.state => 0 Gate[0] == g => true Gate[1] == h => true h.update => # h.state => 1 ---end--- Does that fit what you're looking for? Lennon