"for a method there exists an additional precondition (i.e. that some instance variables are set in a particular way)." there is still a precondition in either case precondition: an instance variable is set in a particular way def first @name = "sam" last end def last name = @name + " " + "jam" end precondition: something is passed to it (something set in a particular way) def first name = "sam" last(name) end def last(first) name = first + " " + "jam" end A lot of what you said I see as great points, but not that one because it is the same in either case. -- Posted via http://www.ruby-forum.com/.