diff --git a/control.go b/control.go
index 5a73e26..165a7dc 100644
--- a/control.go
+++ b/control.go
@@ -31,11 +31,3 @@ func initDefaultVars(ctx ExprContext) {
 	ctx.SetVar(ControlBoolShortcut, true)
 	ctx.SetVar(ControlSearchPath, init_search_path)
 }
-
-func getControlString(ctx ExprContext, name string) (s string, exists bool) {
-	var v any
-	if v, exists = ctx.GetVar(name); exists {
-		s, exists = v.(string)
-	}
-	return
-}
diff --git a/func-import.go b/func-import.go
index 80b683d..48c5f93 100644
--- a/func-import.go
+++ b/func-import.go
@@ -9,8 +9,6 @@ import (
 	"os"
 )
 
-const ENV_EXPR_PATH = "EXPR_PATH"
-
 func importFunc(ctx ExprContext, name string, args []any) (result any, err error) {
 	return importGeneral(ctx, name, args)
 }
@@ -21,19 +19,11 @@ func importAllFunc(ctx ExprContext, name string, args []any) (result any, err er
 }
 
 func importGeneral(ctx ExprContext, name string, args []any) (result any, err error) {
-	var dirList []string
-
-	dirList = addEnvImportDirs(dirList)
-	dirList = addPresetImportDirs(ctx, dirList)
+	dirList := buildSearchDirList("sources", ENV_EXPR_SOURCE_PATH)
 	result, err = doImport(ctx, name, dirList, NewArrayIterator(args))
 	return
 }
 
-func addPresetImportDirs(ctx ExprContext, dirList []string) []string {
-	// return addPresetDirs(ctx, ControlImportPath, dirList)
-	return addSearchDirs(ctx, "sources", dirList)
-}
-
 func doImport(ctx ExprContext, name string, dirList []string, it Iterator) (result any, err error) {
 	var v any
 	var sourceFilepath string
diff --git a/global-context.go b/global-context.go
index 58d4624..fc56b52 100644
--- a/global-context.go
+++ b/global-context.go
@@ -128,6 +128,14 @@ func CtrlIsEnabled(ctx ExprContext, name string) (status bool) {
 	return
 }
 
+func getControlString(name string) (s string, exists bool) {
+	var v any
+	if v, exists = globalCtx.GetVar(name); exists {
+		s, exists = v.(string)
+	}
+	return
+}
+
 func init() {
 	globalCtx = NewSimpleStore()
 	initDefaultVars(globalCtx)
diff --git a/import-utils.go b/import-utils.go
index b1af7d0..ee1e1b5 100644
--- a/import-utils.go
+++ b/import-utils.go
@@ -13,6 +13,11 @@ import (
 	"strings"
 )
 
+const (
+	ENV_EXPR_SOURCE_PATH = "EXPR_PATH"
+	ENV_EXPR_PLUGIN_PATH = "EXPR_PLUGIN_PATH"
+)
+
 func checkStringParamExpected(funcName string, paramValue any, paramPos int) (err error) {
 	if !(IsString(paramValue) /*|| isList(paramValue)*/) {
 		err = fmt.Errorf("%s(): param nr %d has wrong type %s, string expected", funcName, paramPos+1, typeName(paramValue))
@@ -20,8 +25,16 @@ func checkStringParamExpected(funcName string, paramValue any, paramPos int) (er
 	return
 }
 
-func addEnvImportDirs(dirList []string) []string {
-	if dirSpec, exists := os.LookupEnv(ENV_EXPR_PATH); exists {
+func addSourceEnvImportDirs(varName string, dirList []string) []string {
+	return addEnvImportDirs(ENV_EXPR_SOURCE_PATH, dirList)
+}
+
+func addPluginEnvImportDirs(varName string, dirList []string) []string {
+	return addEnvImportDirs(ENV_EXPR_PLUGIN_PATH, dirList)
+}
+
+func addEnvImportDirs(envVarName string, dirList []string) []string {
+	if dirSpec, exists := os.LookupEnv(envVarName); exists {
 		dirs := strings.Split(dirSpec, ":")
 		if dirList == nil {
 			dirList = dirs
@@ -32,22 +45,8 @@ func addEnvImportDirs(dirList []string) []string {
 	return dirList
 }
 
-/*
-func addPresetDirs(ctx ExprContext, ctrlKey string, dirList []string) []string {
-	if dirSpec, exists := getControlString(ctx, ctrlKey); exists {
-		dirs := strings.Split(dirSpec, ":")
-		if dirList == nil {
-			dirList = dirs
-		} else {
-			dirList = append(dirList, dirs...)
-		}
-	}
-	return dirList
-}
-*/
-
-func addSearchDirs(ctx ExprContext, endingPath string, dirList []string) []string {
-	if dirSpec, exists := getControlString(ctx, ControlSearchPath); exists {
+func addSearchDirs(endingPath string, dirList []string) []string {
+	if dirSpec, exists := getControlString(ControlSearchPath); exists {
 		dirs := strings.Split(dirSpec, ":")
 		if dirList == nil {
 			dirList = dirs
@@ -64,6 +63,12 @@ func addSearchDirs(ctx ExprContext, endingPath string, dirList []string) []strin
 	return dirList
 }
 
+func buildSearchDirList(endingPath, envVarName string) (dirList []string) {
+	dirList = addEnvImportDirs(envVarName, dirList)
+	dirList = addSearchDirs(endingPath, dirList)
+	return
+}
+
 func isFile(filePath string) bool {
 	info, err := os.Stat(filePath)
 	return (err == nil || errors.Is(err, os.ErrExist)) && info.Mode().IsRegular()
@@ -93,7 +98,7 @@ func makeFilepath(filename string, dirList []string) (filePath string, err error
 		filePath = searchAmongPath(filename, dirList)
 	}
 	if len(filePath) == 0 {
-		err = fmt.Errorf("source file %q not found", filename)
+		err = fmt.Errorf("file %q not found", filename)
 	}
 	return
 }