diff --git a/src/main/java/org/apache/sling/feature/io/IOUtils.java b/src/main/java/org/apache/sling/feature/io/IOUtils.java
index 9375aff..205052d 100644
--- a/src/main/java/org/apache/sling/feature/io/IOUtils.java
+++ b/src/main/java/org/apache/sling/feature/io/IOUtils.java
@@ -24,8 +24,6 @@
 import java.util.Comparator;
 import java.util.List;
 
-import org.apache.sling.feature.ArtifactId;
-
 public class IOUtils {
 
     /** The extension for a reference file. */
@@ -157,18 +155,6 @@
         return paths;
     }
 
-    /**
-     * Get an artifact id for the Apache Felix framework
-     * @param version The version to use or {@code null} for the default version
-     * @return The artifact id
-     * @throws IllegalArgumentException If the provided version is invalid
-     */
-    public static ArtifactId getFelixFrameworkId(final String version) {
-        return new ArtifactId("org.apache.felix",
-                "org.apache.felix.framework",
-                version != null ? version : "6.0.1", null, null);
-    }
-
     static final Comparator<String> FEATURE_PATH_COMP = new Comparator<String>() {
         @Override
         public int compare(final String o1, final String o2) {
diff --git a/src/main/java/org/apache/sling/feature/io/file/ArtifactHandler.java b/src/main/java/org/apache/sling/feature/io/file/ArtifactHandler.java
index 5ae472c..e1d4ab0 100644
--- a/src/main/java/org/apache/sling/feature/io/file/ArtifactHandler.java
+++ b/src/main/java/org/apache/sling/feature/io/file/ArtifactHandler.java
@@ -27,15 +27,31 @@
 
     private final File file;
 
+    /**
+     * Create a new handler.
+     * 
+     * @param url  The url of the artifact
+     * @param file The file for the artifact
+     */
     public ArtifactHandler(final String url, final File file) {
         this.url = url;
         this.file = file;
     }
 
+    /**
+     * Get the url of the artifact
+     * 
+     * @return The url.
+     */
     public String getUrl() {
         return url;
     }
 
+    /**
+     * Get a file for the artifact
+     * 
+     * @return The file
+     */
     public File getFile() {
         return file;
     }
