diff --git a/tools.go b/tools.go
index fa312be..0151328 100644
--- a/tools.go
+++ b/tools.go
@@ -70,16 +70,23 @@ func (u *utilities) run(args ...string) {
 	}
 }
 
+func shouldSkip(path string) bool {
+	st, e := os.Stat(path)
+	if e != nil {
+		fmt.Fprintf(os.Stderr, "Skipping: %s - %s\n", path, e)
+		return true
+	}
+	if st.IsDir() {
+		fmt.Fprintf(os.Stderr, "Skipping: %s - directory\n", path)
+		return true
+	}
+	return false
+}
+
 func dumpAst(files ...string) {
 	for _, arg := range files {
 		// Ensure file exists and not a directory
-		st, e := os.Stat(arg)
-		if e != nil {
-			fmt.Fprintf(os.Stderr, "Skipping: %s - %s\n", arg, e)
-			continue
-		}
-		if st.IsDir() {
-			fmt.Fprintf(os.Stderr, "Skipping: %s - directory\n", arg)
+		if shouldSkip(arg) {
 			continue
 		}
 
@@ -142,6 +149,9 @@ func printObject(obj types.Object) {
 func dumpCallObj(files ...string) {
 
 	for _, file := range files {
+		if shouldSkip(file) {
+			continue
+		}
 		context := createContext(file)
 		ast.Inspect(context.root, func(n ast.Node) bool {
 			var obj types.Object
@@ -163,6 +173,9 @@ func dumpCallObj(files ...string) {
 
 func dumpUses(files ...string) {
 	for _, file := range files {
+		if shouldSkip(file) {
+			continue
+		}
 		context := createContext(file)
 		for ident, obj := range context.info.Uses {
 			fmt.Printf("IDENT: %v, OBJECT: %v\n", ident, obj)
@@ -172,6 +185,9 @@ func dumpUses(files ...string) {
 
 func dumpTypes(files ...string) {
 	for _, file := range files {
+		if shouldSkip(file) {
+			continue
+		}
 		context := createContext(file)
 		for expr, tv := range context.info.Types {
 			fmt.Printf("EXPR: %v, TYPE: %v\n", expr, tv)
@@ -181,6 +197,9 @@ func dumpTypes(files ...string) {
 
 func dumpDefs(files ...string) {
 	for _, file := range files {
+		if shouldSkip(file) {
+			continue
+		}
 		context := createContext(file)
 		for ident, obj := range context.info.Defs {
 			fmt.Printf("IDENT: %v, OBJ: %v\n", ident, obj)
@@ -190,6 +209,9 @@ func dumpDefs(files ...string) {
 
 func dumpComments(files ...string) {
 	for _, file := range files {
+		if shouldSkip(file) {
+			continue
+		}
 		context := createContext(file)
 		for _, group := range context.comments.Comments() {
 			fmt.Println(group.Text())