           return childScopes.join('::')
     # Search in use
     result = null
-    if 'use' of @projectObjList[scope]
-      for use_mod in @projectObjList[scope]['use']
-        if use_mod[0] of @projectObjList
-          if use_mod[1].length > 0
-            if use_mod[1].indexOf(name) == -1
-              continue
-          result = @findInScope(use_mod[0], name)
-          if result?
-            return result
+    usedMod = @getUseSearches(scope, { }, [])
+    for useMod of usedMod
+      if usedMod[useMod].length > 0
+        if usedMod[useMod].indexOf(name) == -1
+          continue
+      result = @findInScope(useMod, name)
+      if result?
+        return result
     # Search parent
     if not result?
       endOfScope = scope.lastIndexOf('::')

    if 'in_children' of @projectObjList[scope]
      for childKey in @projectObjList[scope]['in_children']
        completions.push(@buildCompletion(@projectObjList[childKey]))
    # Process USE STMT (only if no only_list)
    if ('use' of @projectObjList[scope]) and (only_list.length == 0)
      for use_mod in @projectObjList[scope]['use']
        if use_mod[0] of @projectObjList
          completions = @addPublicChildren(use_mod[0], completions, prefix, use_mod[1])
    return completions

  addPublicChildren: (scope, completions, prefix, only_list) ->
    unless scope of @projectObjList
      return completions
    unless 'children' of @projectObjList[scope]
      return
    children = @projectObjList[scope]['children']
    curr_vis = 1
    if 'vis' of @projectObjList[scope]
      curr_vis = parseInt(@projectObjList[scope]['vis'])
    for child in children
      if prefix?
        unless child.startsWith(prefix)
          continue
      if only_list.length > 0
        if only_list.indexOf(child) == -1
          continue
      childKey = scope+'::'+child
      if childKey of @projectObjList
        if 'vis' of @projectObjList[childKey]
          if parseInt(@projectObjList[childKey]['vis']) + curr_vis < 0
            continue
        else
          if curr_vis < 0
            continue
        if @projectObjList[childKey]['type'] == 'copy'
          @resolveInterface(childKey, scope)

    if 'in_children' of @projectObjList[scope]
      for childKey in @projectObjList[scope]['in_children']
        completions.push(@buildCompletion(@projectObjList[childKey]))
    return completions

  resolveInterface: (intObjKey, scope) ->
