From: Peter Hickman Date: 2012-09-21T23:38:08+09:00 Subject: Re: still learning by doing - connecting rooms in a game Ok just a few points on the code that you did write. Firstly as you have given both name() and state() methods you do not need the line attr_accessor :name, :state It does nothing useful give that name() and state() are methods. However if you removed the name() method then you could have attr_reader :name It's a personal choice. I would personally go for the method but then is no right way, just don't do both. Secondly, as I'm sure you will have noticed, each room has: def initialize(name) @name = name end def name() @name end So what you need is class Room def initialize(name) @name = name end def name() @name end end and then the class Bathroom would become class Bathroom < Room def state() ... All the stuff for state end end That should help a little, I hope :)