Fixed importing to the right version
diff --git a/dependency/resolver.go b/dependency/resolver.go
index 3eb5772..46dd3da 100644
--- a/dependency/resolver.go
+++ b/dependency/resolver.go
@@ -76,6 +76,9 @@
 // version.
 type VersionHandler interface {
 
+	// Process provides an opportunity to process the codebase for version setting.
+	Process(pkg string) error
+
 	// SetVersion sets the version for a package. An error is returned if there
 	// was a problem setting the version.
 	SetVersion(pkg string) error
@@ -88,6 +91,11 @@
 // package as part of the installer.
 type DefaultVersionHandler struct{}
 
+// Process a package to aide in version setting.
+func (d *DefaultVersionHandler) Process(pkg string) error {
+	return nil
+}
+
 // SetVersion here sends a message when a package is found noting that it
 // did not set the version.
 func (d *DefaultVersionHandler) SetVersion(pkg string) error {
@@ -278,6 +286,8 @@
 	var failedDep string
 	for e := queue.Front(); e != nil; e = e.Next() {
 		dep := e.Value.(string)
+		t := strings.TrimPrefix(e.Value.(string), r.VendorDir+string(os.PathSeparator))
+		r.VersionHandler.Process(t)
 		//msg.Warn("#### %s ####", dep)
 		//msg.Info("Seen Count: %d", len(r.seen))
 		// Catch the outtermost dependency.
diff --git a/repo/installer.go b/repo/installer.go
index fd8ed5d..d69e811 100644
--- a/repo/installer.go
+++ b/repo/installer.go
@@ -165,25 +165,6 @@
 		Config:      conf,
 	}
 
-	// Prepopulate the import cache with imports from the top level dependencies
-	// we are assuming are present.
-	for _, d := range conf.Imports {
-		v.Imported[d.Name] = true
-		p := filepath.Join(i.VendorPath(), d.Name)
-		f, deps, err := importer.Import(p)
-		if f && err == nil {
-
-			for _, dep := range deps {
-				exists := ic.Get(dep.Name)
-				if exists == nil && (dep.Reference != "" || dep.Repository != "") {
-					ic.Add(dep.Name, dep)
-				}
-			}
-		} else if err != nil {
-			msg.Error("Unable to import from %s. Err: %s", d.Name, err)
-		}
-	}
-
 	// Update imports
 	res, err := dependency.NewResolver(base)
 	if err != nil {
@@ -421,12 +402,8 @@
 	Conflicts map[string]bool
 }
 
-// SetVersion sets the version for a package. If that package version is already
-// set it handles the case by:
-// - keeping the already set version
-// - proviting messaging about the version conflict
-// TODO(mattfarina): The way version setting happens can be improved. Currently not optimal.
-func (d *VersionHandler) SetVersion(pkg string) (e error) {
+// Process imports dependencies for a package
+func (d *VersionHandler) Process(pkg string) (e error) {
 	root := util.GetRootFromPackage(pkg)
 
 	// Skip any references to the root package.
@@ -437,8 +414,6 @@
 		return nil
 	}
 
-	v := d.Config.Imports.Get(root)
-
 	// We have not tried to import, yet.
 	// Should we look in places other than the root of the project?
 	if d.Imported[root] == false {
@@ -460,6 +435,27 @@
 		}
 	}
 
+	return
+}
+
+// SetVersion sets the version for a package. If that package version is already
+// set it handles the case by:
+// - keeping the already set version
+// - proviting messaging about the version conflict
+// TODO(mattfarina): The way version setting happens can be improved. Currently not optimal.
+func (d *VersionHandler) SetVersion(pkg string) (e error) {
+	root := util.GetRootFromPackage(pkg)
+
+	// Skip any references to the root package.
+	if root == d.RootPackage {
+		return nil
+	}
+	if d.Config.HasIgnore(root) || d.Config.HasIgnore(pkg) {
+		return nil
+	}
+
+	v := d.Config.Imports.Get(root)
+
 	dep := d.Use.Get(root)
 	if dep != nil && v != nil {
 		if v.Reference == "" && dep.Reference != "" {