diff --git a/org.osgi.service.obr/src/main/java/org/osgi/service/obr/RepositoryAdmin.java b/org.osgi.service.obr/src/main/java/org/osgi/service/obr/RepositoryAdmin.java
index 7468871..29fad00 100644
--- a/org.osgi.service.obr/src/main/java/org/osgi/service/obr/RepositoryAdmin.java
+++ b/org.osgi.service.obr/src/main/java/org/osgi/service/obr/RepositoryAdmin.java
@@ -23,6 +23,9 @@
 
 import java.net.URL;
 
+import org.osgi.framework.Filter;
+import org.osgi.framework.InvalidSyntaxException;
+
 /**
  * Provides centralized access to the distributed repository.
  * 
@@ -75,7 +78,6 @@
     /**
      * Create a resolver.
      * 
-     * @param resource
      * @return
      */
     Resolver resolver();
@@ -100,5 +102,22 @@
      */
     Repository[] listRepositories();
 
-    Resource getResource(String respositoryId);
+    Resource getResource(String repositoryId);
+
+    /**
+     * Create a simple requirement to be used for selection
+     * @param name
+     * @param filter
+     * @return
+     */
+    Requirement requirement(String name, String filter) throws InvalidSyntaxException;
+
+    /**
+     * Create an extender filter supporting the SUBSET, SUPERSET and other extensions
+     *
+     * @param filter the string filter
+     * @return
+     */
+    Filter filter(String filter) throws InvalidSyntaxException;
+
 }
\ No newline at end of file
diff --git a/org.osgi.service.obr/src/main/java/org/osgi/service/obr/Resolver.java b/org.osgi.service.obr/src/main/java/org/osgi/service/obr/Resolver.java
index 629159b..a8a552d 100644
--- a/org.osgi.service.obr/src/main/java/org/osgi/service/obr/Resolver.java
+++ b/org.osgi.service.obr/src/main/java/org/osgi/service/obr/Resolver.java
@@ -24,8 +24,42 @@
 public interface Resolver
 {
 
+    /**
+     * Add the following resource to the resolution.
+     *
+     * The resource will be part of the output and all its requirements
+     * will be satisfied.
+     *
+     * It has the same effect has adding a requirement that will match
+     * this resource by symbolicname and version.
+     *
+     * The current resolution will be lost after adding a resource.
+     *
+     * @param resource the resource to add
+     */
     void add(Resource resource);
 
+    /**
+     * Returns the list of resources that have been added to the resolution
+     * @return
+     */
+    Resource[] getAddedResources();
+
+    /**
+     * Add the following requirement to the resolution
+     *
+     * The current resolution will be lost after adding a requirement.
+     *
+     * @param requirement the requirement to add
+     */
+    void add(Requirement requirement);
+
+    /**
+     * Returns the list of requirements that have been added to the resolution
+     * @return
+     */
+    Requirement[] getAddedRequirements();
+
     Requirement[] getUnsatisfiedRequirements();
 
     Resource[] getOptionalResources();
@@ -36,8 +70,6 @@
 
     Resource[] getRequiredResources();
 
-    Resource[] getAddedResources();
-
     boolean resolve();
 
     void deploy(boolean start);
