         @.cb = callback
 
     watchAny = (scope, lkey, rkey, callback) ->
-        root = scope.$system.root
+        sys = scope.$system
+        rootSys = sys.root.$system
 
         wa = new WA callback
 
-        scope.$system[lkey].push wa
-        root.$system[rkey].push wa
+        sys[lkey].push wa
+        rootSys[rkey].push wa
 
         return {
             stop: ->
-                l = scope.$system[lkey]
+                l = sys[lkey]
                 i = l.indexOf wa
                 if i >= 0
                     l.splice i, 1
 
-                l = root.$system[rkey]
+                l = rootSys[rkey]
                 i = l.indexOf wa
                 if i >= 0
                     l.splice i, 1

                        if isObserved
                            d.isObserved = true
                            for variable in ce.simpleVariables
                                ob = alight.observer.watch @.$system.ob, variable, ->
                                    if scope.$system.obFire[key]
                                        return
                                    scope.$system.obFire[key] = true
                                    rootSys.obList.push [scope, d]

            if option.isArray and not isObserved

        finishBinding_lock: false

    if typeof(conf.useObserver) is 'boolean'
        sys.useObserver = conf.useObserver
    else
        sys.useObserver = alight.debug.useObserver

    if sys.useObserver
        sys.useObserver = !!Object.observe

    if sys.useObserver
        # chain for active scopes
        sys.lineHead = null
        sys.lineTail = null
        sys.lineActive = false
        sys.prevSibling = null
        sys.nextSibling = null

        sys.obList = []  # contain fired watchers
        sys.obFire = {}
        sys.ob = ob = alight.observer.observe scope,
            rootEvent: (key, value) ->
                if alight.debug.observer
                    console.warn 'Reobserve', key
                for child in scope.$system.children
                    child.$$rebuildObserve key, value
                null
        sys.observers = [ob]  # list of all observers
    scope

alight.Scope = Scope
