     /** The field name of the distributed set that contains our tables. */
     protected var _tableField :String;
 
-    /** The entity that we talk to when table stuff happens. */
-    protected var _observer :TableObserver;
-
     /** The table of which we are a member if any. */
     protected var _ourTable :Table;
+
+    /** An array of entities that want to hear about table updates. */
+    protected var _tableObservers :ObserverList = new ObserverList();
 
     /** An array of entities that want to hear about when we stand up or sit down. */
     protected var _seatedObservers :ObserverList = new ObserverList();

     * managing.
     * @param observer the entity that will receive callbacks when things happen to the tables.
     */
    public function TableDirector (ctx :ParlorContext, tableField :String, observer :TableObserver)
    {
        super(ctx);

        // keep track of this stuff
        _pctx = ctx;
        _tableField = tableField;
        _observer = observer;
    }

    /**

            var table :Table = (event.getEntry() as Table);
            // check to see if we just joined a table
            checkSeatedness(table);
            // now let the observers know what's up
            _tableObservers.apply(function (to :TableObserver) :void {
                to.tableAdded(table);
            });
        }
    }

