updated documentation
diff --git a/README.md b/README.md
index 8c09685..284a5c2 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,8 @@
-# Resource Stream Support
+# Resource Filter
+Consists of a utility to do a controlled traversal of a Resource sub-tree as well as a dedicated scripting language to create a boolean Predicate object that be used as part of Java Collections or with native Java Streams.
+
+
+## Resource Stream
 
 * `ResourceStream` utility to provide a `Stream<Resource>` which traverses the subtree of a resource
 * Script support for creation of a complex `Predicate<Resource>` for use with Collections and Streams
@@ -6,16 +10,15 @@
 Example of a stream using the filter script
 
 ```java
-new ResourceStream(resource)
-    .setBranchSelector("[jcr:primaryType] == 'cq:Page'")
-    .stream()
-    .filter(new ResourceFilter("[jcr:content/sling:resourceType] != 'apps/components/page/folder'"))
-    .collect(Collections.toList());
+     new ResourceStreamFilter(resource)
+        .stream("[jcr:primaryType] == 'cq:Page'")
+        .filter(new ResourceFilter("[jcr:content/sling:resourceType] != 'apps/components/page/folder'"))
+        .collect(Collections.toList());
 ```
 
 
 
-## ResourceFilter Script
+## ResourceFilter Scripting
 
 ### Operators
 
diff --git a/src/main/java/org/apache/sling/resource/filter/ResourceFilter.java b/src/main/java/org/apache/sling/resource/filter/ResourceFilter.java
index a752032..d7fd5c3 100644
--- a/src/main/java/org/apache/sling/resource/filter/ResourceFilter.java
+++ b/src/main/java/org/apache/sling/resource/filter/ResourceFilter.java
@@ -25,6 +25,10 @@
 import org.apache.sling.resource.filter.impl.ParseException;

 import org.apache.sling.resource.filter.impl.node.Node;

 

+/**

+ * Creates a {@link Predicate} of type {@link Resource} to identify matching Resource objects

+ *

+ */

 public class ResourceFilter implements Predicate<Resource> {

 

     private Predicate<Resource> parsedPredicate;

diff --git a/src/main/java/org/apache/sling/resource/filter/ResourceStream.java b/src/main/java/org/apache/sling/resource/filter/ResourceStream.java
index db4d78a..64b3930 100644
--- a/src/main/java/org/apache/sling/resource/filter/ResourceStream.java
+++ b/src/main/java/org/apache/sling/resource/filter/ResourceStream.java
@@ -98,6 +98,13 @@
         }, Spliterator.ORDERED | Spliterator.IMMUTABLE), false);
     }
 
+    /**
+     * Provides a stream of the child resource of the base resource. The predicate
+     * is a filter to determine which of the children are returned
+     * 
+     * @param childSelector
+     * @return
+     */
     public Stream<Resource> listChildren(Predicate<Resource> childSelector) {
         return StreamSupport.stream(Spliterators.spliteratorUnknownSize(resource.listChildren(),
                 Spliterator.ORDERED | Spliterator.IMMUTABLE), false).filter(childSelector);
diff --git a/src/main/java/org/apache/sling/resource/filter/impl/predicates/ComparisonPredicateFactory.java b/src/main/java/org/apache/sling/resource/filter/impl/predicates/ComparisonPredicateFactory.java
index 222f86f..d16b947 100644
--- a/src/main/java/org/apache/sling/resource/filter/impl/predicates/ComparisonPredicateFactory.java
+++ b/src/main/java/org/apache/sling/resource/filter/impl/predicates/ComparisonPredicateFactory.java
@@ -20,6 +20,9 @@
 import org.apache.sling.resource.filter.impl.FilterParserConstants;

 

 public class ComparisonPredicateFactory {

+    

+    private ComparisonPredicateFactory() {

+    }

 

     public static Predicate<Resource> toPredicate(int kind, Function<Resource, Object> leftValue,

             Function<Resource, Object> rightValue) {

diff --git a/src/main/java/org/apache/sling/resource/filter/impl/predicates/ComparisonPredicates.java b/src/main/java/org/apache/sling/resource/filter/impl/predicates/ComparisonPredicates.java
index afbb88e..0ab09eb 100644
--- a/src/main/java/org/apache/sling/resource/filter/impl/predicates/ComparisonPredicates.java
+++ b/src/main/java/org/apache/sling/resource/filter/impl/predicates/ComparisonPredicates.java
@@ -33,6 +33,8 @@
  */
 public class ComparisonPredicates {
 
+    private static final String STATEMENT_MAY_NOT_BE_NULL = "statement may not be null";
+
     /**
      * Values are converted to Strings.
      * 
@@ -43,7 +45,7 @@
      * @return true if right hand String is equal to left hand String
      */
     public static Predicate<Resource> is(Function<Resource, Object> lhs, Function<Resource, Object> rhs) {
-        Objects.requireNonNull(rhs, "statement may not be null");
+        Objects.requireNonNull(rhs, STATEMENT_MAY_NOT_BE_NULL);
         return resource -> {
             CharSequence lhValue = ComparisonPredicates.getString(lhs.apply(resource));
             CharSequence rhValue = ComparisonPredicates.getString(rhs.apply(resource));
@@ -65,7 +67,7 @@
      * @return true if right hand String is equal to left hand String
      */
     public static Predicate<Resource> isNot(Function<Resource, Object> lhs, Function<Resource, Object> rhs) {
-        Objects.requireNonNull(rhs, "statement may not be null");
+        Objects.requireNonNull(rhs, STATEMENT_MAY_NOT_BE_NULL);
         return resource -> {
             CharSequence lhValue = ComparisonPredicates.getString(lhs.apply(resource));
             CharSequence rhValue = ComparisonPredicates.getString(rhs.apply(resource));
@@ -112,7 +114,7 @@
      */
     @SuppressWarnings("unchecked")
     public static Predicate<Resource> gt(Function<Resource, Object> lhs, Function<Resource, Object> rhs) {
-        Objects.requireNonNull(rhs, "statement may not be null");
+        Objects.requireNonNull(rhs, STATEMENT_MAY_NOT_BE_NULL);
         return resource -> {
             Number lhValue = ComparisonPredicates.getNumber(lhs.apply(resource));
             Number rhValue = ComparisonPredicates.getNumber(rhs.apply(resource));
@@ -141,7 +143,7 @@
      */
     @SuppressWarnings("unchecked")
     public static Predicate<Resource> gte(Function<Resource, Object> lhs, Function<Resource, Object> rhs) {
-        Objects.requireNonNull(rhs, "statement may not be null");
+        Objects.requireNonNull(rhs, STATEMENT_MAY_NOT_BE_NULL);
         return resource -> {
             Number lhValue = ComparisonPredicates.getNumber(lhs.apply(resource));
             Number rhValue = ComparisonPredicates.getNumber(rhs.apply(resource));
@@ -198,7 +200,7 @@
      */
     @SuppressWarnings("unchecked")
     public static Predicate<Resource> lte(Function<Resource, Object> lhs, Function<Resource, Object> rhs) {
-        Objects.requireNonNull(rhs, "statement may not be null");
+        Objects.requireNonNull(rhs, STATEMENT_MAY_NOT_BE_NULL);
         return resource -> {
             Number lhValue = ComparisonPredicates.getNumber(lhs.apply(resource));
             Number rhValue = ComparisonPredicates.getNumber(rhs.apply(resource));
@@ -224,7 +226,7 @@
      * @return true if left hand values are a subset of right hand values
      */
     public static Predicate<Resource> contains(Function<Resource, Object> lhs, Function<Resource, Object> rhs) {
-        Objects.requireNonNull(rhs, "statement may not be null");
+        Objects.requireNonNull(rhs, STATEMENT_MAY_NOT_BE_NULL);
         return resource -> {
             String[] lhValues = adaptToArray(lhs.apply(resource));
             String[] rhValues = adaptToArray(rhs.apply(resource));
diff --git a/src/main/java/org/apache/sling/resource/filter/impl/predicates/Null.java b/src/main/java/org/apache/sling/resource/filter/impl/predicates/Null.java
index 066501c..4cd60d6 100644
--- a/src/main/java/org/apache/sling/resource/filter/impl/predicates/Null.java
+++ b/src/main/java/org/apache/sling/resource/filter/impl/predicates/Null.java
@@ -14,16 +14,11 @@
 package org.apache.sling.resource.filter.impl.predicates;

 

 /**

- * 

- * @author jabail

+ * Utility class to represent a Null value while evaluating predicates

  *

  */

 public class Null extends Number implements CharSequence {

 

-    /**

-     * The version identifier for this Serializable class. Increment only if the

-     * <i>serialized</i> form of the class changes.

-     */

     private static final long serialVersionUID = 1L;

 

     @Override