Question: Sorry about the wording of the question, I don't really know how to put it. What I mean is, how could I do this:

```
class Test
  def doSomething
    puts "I'm working"
  end
end

class numberTwo
  def doSomethingElse
    subject.doSomething
    puts "Doing other things"
  end
end
subject = Test.new
otherObject = numberTwo.new
otherObject.doSomethingElse

```

What I want is when otherObject.doSomethingElse is called, subject.doSomething to also be called. I'm not sure how you can do this, or if it is possible. 
Thanks in advance.

Answer: 
You need to make a decision between calling a method on an instance of Test or just making it a class method and calling that. If it's the former, then you need to hold a reference somewhere so the calling method can see it. There are several ways to do this. 

* provide the reference to NumberTwo#initialize or some other attribute writer
* allocate Test in a factory method of NumberTwo
* use a global variable to hold a reference

There are already examples of everything but the factory method, so I will do that one...

```
class NumberTwo
  def doSomethingElse
    @myTest.doSomething
    puts "Doing other things"
  end
  def testFactory
    @myTest = Test.new
  end
end
otherObject = NumberTwo.new
subject = otherObject.testFactory
otherObject.doSomethingElse

```
If you want a class to call a member of another class, you have to make the class a member of the first class, or derive from that class.

Here your `numberTwo` class tries to call a method on an object that it has no reference to (subject).