title: TraitsUI, sharing an object
body: <p>I am building a gui using HasTraits objects. I have a main object, and then objects for each component of the gui. 
  I would like to share an object across multiple components. For example, i have a main window <strong>A</strong> which has components <strong>B</strong> and <strong>C</strong>. <strong>C</strong>  needs to have access to things in <strong>B</strong>. currently i am doing this</p>
  
  <pre><code>class B(HasTraits):
       ...
  
  class C(HasTraits):
       ...
  
  class A(HasTraits):
      b = Instance(B,())
      c = Instance(C)
      ...
  
  def _c_default(self):
      return C(b = self.b,...)
      ...
  </code></pre>
  
  <p>Which seems like not the best way to do this.  Also there are sub-sub-components so <strong>A.C.D</strong>,  and <strong>D</strong> needs things in <strong>A.B</strong>. </p>
  
  <p>Is this the best way to share objects using traits?</p>