diff --git a/commons/ldpath/clerezza/pom.xml b/commons/ldpath/clerezza/pom.xml
index 252107f..95ec6f3 100644
--- a/commons/ldpath/clerezza/pom.xml
+++ b/commons/ldpath/clerezza/pom.xml
@@ -79,7 +79,7 @@
     </dependency>
     <dependency>
       <groupId>at.newmedialab.ldpath</groupId>
-      <artifactId>ldpath-core-bundle</artifactId>
+      <artifactId>ldpath-core</artifactId>
     </dependency>
     <!-- Commons -->
     <dependency>
diff --git a/contenthub/ldpath/pom.xml b/contenthub/ldpath/pom.xml
index 9933976..aa79209 100644
--- a/contenthub/ldpath/pom.xml
+++ b/contenthub/ldpath/pom.xml
@@ -90,7 +90,7 @@
     </dependency>
     <dependency>
       <groupId>at.newmedialab.ldpath</groupId>
-      <artifactId>ldpath-core-bundle</artifactId>
+      <artifactId>ldpath-core</artifactId>
     </dependency>
 
     <dependency>
diff --git a/contenthub/servicesapi/pom.xml b/contenthub/servicesapi/pom.xml
index c901388..cffa341 100644
--- a/contenthub/servicesapi/pom.xml
+++ b/contenthub/servicesapi/pom.xml
@@ -56,7 +56,7 @@
     </dependency>
     <dependency>
       <groupId>at.newmedialab.ldpath</groupId>
-      <artifactId>ldpath-core-bundle</artifactId>
+      <artifactId>ldpath-core</artifactId>
     </dependency>
   </dependencies>
 </project>
diff --git a/enhancer/ldpath/pom.xml b/enhancer/ldpath/pom.xml
index f50159a..0f95f2c 100644
--- a/enhancer/ldpath/pom.xml
+++ b/enhancer/ldpath/pom.xml
@@ -97,7 +97,7 @@
     <dependency>
       <groupId>org.apache.stanbol</groupId>
       <artifactId>org.apache.stanbol.commons.ldpath.clerezza</artifactId>
-      <version>0.9.0-incubating</version>
+      <version>0.10.0-incubating-SNAPSHOT</version>
     </dependency>
 
     <!-- Clerezza dependencies -->
@@ -117,7 +117,7 @@
     </dependency>
     <dependency>
       <groupId>at.newmedialab.ldpath</groupId>
-      <artifactId>ldpath-core-bundle</artifactId>
+      <artifactId>ldpath-core</artifactId>
     </dependency>
 
     <!-- generic tax -->
@@ -160,7 +160,18 @@
       <artifactId>rdf.jena.parser</artifactId>
       <scope>test</scope>
     </dependency>
-    
+    <dependency>
+      <groupId>org.jdom</groupId>
+      <artifactId>jdom</artifactId>
+      <version>1.1.2</version>
+      <type>jar</type>
+    </dependency>
+    <dependency>
+      <groupId>net.sourceforge.htmlcleaner</groupId>
+      <artifactId>htmlcleaner</artifactId>
+      <version>2.2</version>
+      <type>jar</type>
+    </dependency>
   </dependencies>
 
 </project>
diff --git a/enhancer/ldpath/src/main/java/org/apache/stanbol/enhancer/ldpath/function/ContentFunction.java b/enhancer/ldpath/src/main/java/org/apache/stanbol/enhancer/ldpath/function/ContentFunction.java
index 0ee7af3..293cc47 100644
--- a/enhancer/ldpath/src/main/java/org/apache/stanbol/enhancer/ldpath/function/ContentFunction.java
+++ b/enhancer/ldpath/src/main/java/org/apache/stanbol/enhancer/ldpath/function/ContentFunction.java
@@ -37,6 +37,7 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import at.newmedialab.ldpath.api.backend.RDFBackend;
 import at.newmedialab.ldpath.api.functions.SelectorFunction;
 
 /**
@@ -119,4 +120,20 @@
         return result;
     }
 
+
+	@Override
+	public String getSignature() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public String getDescription() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+
+
+
 }
diff --git a/enhancer/ldpath/src/main/java/org/apache/stanbol/enhancer/ldpath/function/ContentItemFunction.java b/enhancer/ldpath/src/main/java/org/apache/stanbol/enhancer/ldpath/function/ContentItemFunction.java
index a45ca97..c41651a 100644
--- a/enhancer/ldpath/src/main/java/org/apache/stanbol/enhancer/ldpath/function/ContentItemFunction.java
+++ b/enhancer/ldpath/src/main/java/org/apache/stanbol/enhancer/ldpath/function/ContentItemFunction.java
@@ -45,7 +45,10 @@
         this.name = name;
     }
     
-    public final Collection<Resource> apply(RDFBackend<Resource> backend, Collection<Resource>... args) throws IllegalArgumentException {
+	@Override
+	public final Collection<Resource> apply(RDFBackend<Resource> backend,
+			Resource context, Collection<Resource>... args)
+			throws IllegalArgumentException {
         if(backend instanceof ContentItemBackend){
             return apply((ContentItemBackend)backend, args);
         } else {
diff --git a/enhancer/ldpath/src/main/java/org/apache/stanbol/enhancer/ldpath/function/PathFunction.java b/enhancer/ldpath/src/main/java/org/apache/stanbol/enhancer/ldpath/function/PathFunction.java
index b68cd99..86d2e32 100644
--- a/enhancer/ldpath/src/main/java/org/apache/stanbol/enhancer/ldpath/function/PathFunction.java
+++ b/enhancer/ldpath/src/main/java/org/apache/stanbol/enhancer/ldpath/function/PathFunction.java
@@ -56,7 +56,7 @@
     }
 
     @Override
-    public Collection<Node> apply(RDFBackend<Node> backend, Collection<Node>... args) throws IllegalArgumentException {
+    public Collection<Node> apply(RDFBackend<Node> backend, Node node, Collection<Node>... args) throws IllegalArgumentException {
         if(args == null || args.length < 1 || args[0] == null || args[0].isEmpty()){
             throw new IllegalArgumentException("The 'fn:"+name+"' function " +
                     "requires at least a single none empty parameter (the context). Use 'fn:" +
@@ -64,7 +64,7 @@
         }
         Set<Node> selected = new HashSet<Node>();
         for(Node context : args[0]){
-            selected.addAll(selector.select(backend, context));
+            selected.addAll(selector.select(backend, context, null, null));
         }
         return selected;
     }
@@ -74,4 +74,15 @@
         return name;
     }
 
+
+	@Override
+	public String getSignature() {
+		throw new UnsupportedOperationException("Not supported yet.");
+	}
+
+	@Override
+	public String getDescription() {
+		return "Pathfunction "+name+" with selector "+selector;
+	}
+
 }
diff --git a/enhancer/ldpath/src/main/java/org/apache/stanbol/enhancer/ldpath/function/SuggestionFunction.java b/enhancer/ldpath/src/main/java/org/apache/stanbol/enhancer/ldpath/function/SuggestionFunction.java
index 10ca051..0e49cd6 100644
--- a/enhancer/ldpath/src/main/java/org/apache/stanbol/enhancer/ldpath/function/SuggestionFunction.java
+++ b/enhancer/ldpath/src/main/java/org/apache/stanbol/enhancer/ldpath/function/SuggestionFunction.java
@@ -18,6 +18,7 @@
 
 import static java.util.Collections.singletonMap;
 
+
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -35,6 +36,7 @@
 import at.newmedialab.ldpath.model.transformers.IntTransformer;
 import at.newmedialab.ldpath.model.transformers.StringTransformer;
 
+
 public class SuggestionFunction implements SelectorFunction<Resource> {
     
     private static final Comparator<Entry<Double,Resource>> SUGGESTION_COMPARATOR = 
@@ -91,7 +93,7 @@
     }
     
     @Override
-    public Collection<Resource> apply(final RDFBackend<Resource> backend, Collection<Resource>... args) throws IllegalArgumentException {
+    public Collection<Resource> apply(final RDFBackend<Resource> backend, Resource context, Collection<Resource>... args) throws IllegalArgumentException {
         Integer limit = parseParamLimit(backend, args,1);
 //        final String processingMode = parseParamProcessingMode(backend, args,2);
         final int missingConfidenceMode = parseParamMissingConfidenceMode(backend, args,2);
@@ -125,8 +127,8 @@
                                     List<Resource> result) {
         List<Entry<Double,Resource>> suggestions = new ArrayList<Entry<Double,Resource>>();
         for(Resource annotation : annotations){
-            for(Resource suggestion : suggestionSelector.select(backend, annotation)){
-                Collection<Resource> cs = confidenceSelector.select(backend, suggestion);
+            for(Resource suggestion : suggestionSelector.select(backend, annotation, null, null)){
+                Collection<Resource> cs = confidenceSelector.select(backend, suggestion, null, null);
                 Double confidence = !cs.isEmpty() ? backend.doubleValue(cs.iterator().next()) : 
                         missingConfidenceMode == MISSING_CONFIDENCE_FILTER ?
                                 null : missingConfidenceMode == MISSING_CONFIDENCE_FIRST ?
@@ -143,7 +145,7 @@
             if(resultSelector == null){
                 result.add(suggestion.getValue());
             } else {
-                result.addAll(resultSelector.select(backend, suggestion.getValue()));
+                result.addAll(resultSelector.select(backend, suggestion.getValue(), null, null));
             }
         }
     }
@@ -226,5 +228,16 @@
         return name;
     }
 
+	@Override
+	public String getSignature() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+	@Override
+	public String getDescription() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
     
 }
diff --git a/entityhub/jersey/pom.xml b/entityhub/jersey/pom.xml
index c9c7817..4141bd0 100644
--- a/entityhub/jersey/pom.xml
+++ b/entityhub/jersey/pom.xml
@@ -119,7 +119,7 @@
     </dependency>
     <dependency>
       <groupId>at.newmedialab.ldpath</groupId>
-      <artifactId>ldpath-core-bundle</artifactId>
+      <artifactId>ldpath-core</artifactId>
     </dependency>
         
     <dependency>
diff --git a/entityhub/ldpath/pom.xml b/entityhub/ldpath/pom.xml
index 3ba138c..d16782d 100644
--- a/entityhub/ldpath/pom.xml
+++ b/entityhub/ldpath/pom.xml
@@ -95,7 +95,7 @@
     </dependency>
     <dependency>
       <groupId>at.newmedialab.ldpath</groupId>
-      <artifactId>ldpath-core-bundle</artifactId>
+      <artifactId>ldpath-core</artifactId>
     </dependency>
     
     <!-- generic tax -->
diff --git a/launchers/bundlelists/stanbolcommons/src/main/bundles/list.xml b/launchers/bundlelists/stanbolcommons/src/main/bundles/list.xml
index 28dc314..11880c4 100644
--- a/launchers/bundlelists/stanbolcommons/src/main/bundles/list.xml
+++ b/launchers/bundlelists/stanbolcommons/src/main/bundles/list.xml
@@ -409,12 +409,12 @@
     <bundle> <!-- LD Path -->
       <groupId>at.newmedialab.ldpath</groupId>
       <artifactId>ldpath-api</artifactId>
-      <version>0.9.5</version>
+      <version>0.9.12</version>
     </bundle>
     <bundle>
       <groupId>at.newmedialab.ldpath</groupId>
-      <artifactId>ldpath-core-bundle</artifactId>
-      <version>0.9.5</version>
+      <artifactId>ldpath-core</artifactId>
+      <version>0.9.12</version>
     </bundle>
     <bundle>
       <groupId>org.apache.stanbol</groupId>
diff --git a/parent/pom.xml b/parent/pom.xml
index 32f859a..ac2d29f 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -1138,12 +1138,12 @@
     <dependency>
       <groupId>at.newmedialab.ldpath</groupId>
       <artifactId>ldpath-api</artifactId>
-      <version>0.9.5</version>
+      <version>0.9.12</version>
     </dependency>
     <dependency>
       <groupId>at.newmedialab.ldpath</groupId>
-      <artifactId>ldpath-core-bundle</artifactId>
-      <version>0.9.5</version>
+      <artifactId>ldpath-core</artifactId>
+      <version>0.9.12</version>
     </dependency>
     
     <!-- Apache Tika -->
