rubikitch wrote: >From: "John Cusick" <jcusickc / home.com> >> so what key piece of information did I miss in order to make this work? >You must define the "Song#initialize" method. >The Song.new method calls the Song#initialize with three arguments. >So the following code will work fine. For better or worse, the examples in the pickaxe book are not self-contained. Rather than repeating the code over and over, they just add in each new bit. You need the stuff from back on p. 19. > >class Song > def initialize(name, artist, duration) > @name, @artist, @duration = name, artist, duration > end > attr_reader :name, :artist, :duration >end In this case, Ruby does not automatically build a constructor (initialize) for you just because you have some attributes. Kevin