--- a/src/main/java/net/timbusproject/dpes/pi/kbserver/beans/QueryBean.java
+++ b/src/main/java/net/timbusproject/dpes/pi/kbserver/beans/QueryBean.java
@@ -37,6 +37,8 @@
 import javax.faces.bean.SessionScoped;
 import javax.faces.context.FacesContext;
 import java.io.Serializable;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.LinkedHashSet;
@@ -67,28 +69,20 @@
     private PackageKnowledgeBase packageKnowledgeBase;
 
     private String queryString;
+    private String action;
     private List<String> formatNames;
     private List<String> toolNames;
     private List<String> formatIDs;
     private List<String> packageNames;
     private List<String> virtualPackageNames;
     private List<String> virtualPackageProvidedByFragments;
-
-    public List<String> getQueryResult() {
-        return queryResult;
-    }
-
-    public void setQueryResult(List<String> queryResult) {
-        this.queryResult = queryResult;
-    }
-
     private List<String> queryResult = new ArrayList<>();
 
     @PostConstruct
     public void init() {
         queryFacade = knowledgeBean.getQueryFacade();
         toolKnowledgeBase = knowledgeBean.getToolKnowledgeBase();
-	    packageKnowledgeBase = knowledgeBean.getPackageKnowledgeBase();
+        packageKnowledgeBase = knowledgeBean.getPackageKnowledgeBase();
 
         formatIDs = toolKnowledgeBase.getAllFormatIDs();
         formatNames = getAllFormatNames();
@@ -101,6 +95,33 @@
         Collections.sort(toolNames);
         Collections.sort(packageNames);
         Collections.sort(virtualPackageProvidedByFragments);
+    }
+
+    public void exec() {
+        if (action != null && !action.isEmpty()) {
+            try {
+                Method method = getClass().getDeclaredMethod(action);
+                method.invoke(this);
+            } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) {
+                notify("The provided action is not supported.");
+            }
+        }
+    }
+
+    public List<String> getQueryResult() {
+        return queryResult;
+    }
+
+    public void setQueryResult(List<String> queryResult) {
+        this.queryResult = queryResult;
+    }
+
+    public String getAction() {
+        return action;
+    }
+
+    public void setAction(String action) {
+        this.action = action;
     }
 
     public void setKnowledgeBean(KnowledgeBean knowledgeBean) {