 Scope::$destroy = () ->
     scope = this
     sys = scope.$system
-    root = scope.$system.root
+    rootSys = scope.$system.root.$system
 
     # fire callbacks
-    for cb in scope.$system.destroy_callbacks
+    for cb in sys.destroy_callbacks
         cb scope
-    scope.$system.destroy_callbacks = []
-
-    if root.$system.useObserver
+    sys.destroy_callbacks = []
+
+    if rootSys.useObserver
         do ->
             # remove observer from root
-            ob = scope.$system.ob
-            l = scope.$system.root.$system.observers
+            ob = sys.ob
+            l = rootSys.observers
             i = l.indexOf ob
             if i >= 0
                 l.splice i, 1

###
Scope::$watchText = (name, callback, config) ->
    scope = @
    config = config or {}

    if alight.debug.watchText
        console.log '$watchText', name

    w = scope.$system.watches;
    d = w[name]
    if d
        if not config.readOnly

                    # remove watch
                    d.callbacks.length = 0
                    delete w[name]
                    i = sys.watchList.indexOf d
                    if i >= 0
                        sys.watchList.splice i, 1

                # call listeners
                for cb in d.onStatic
