diff --git a/subprojects/s4-core/src/main/java/org/apache/s4/core/Stream.java b/subprojects/s4-core/src/main/java/org/apache/s4/core/Stream.java
index aa54dfc..e5ef775 100644
--- a/subprojects/s4-core/src/main/java/org/apache/s4/core/Stream.java
+++ b/subprojects/s4-core/src/main/java/org/apache/s4/core/Stream.java
@@ -46,7 +46,6 @@
 
     final static private String DEFAULT_SEPARATOR = "^";
     final static private int CAPACITY = 1000;
-    private static int idCounter = 0;
     private String name;
     protected Key<T> key;
     private ProcessingElement[] targetPEs;
@@ -139,27 +138,15 @@
     }
 
     /**
-     * Send events from this stream to a PE.
-     * 
-     * @param pe
-     *            a target PE.
-     * 
-     * @return the stream object
-     */
-    public Stream<T> setPE(ProcessingElement pe) {
-        app.addStream(this);
-        return this;
-    }
-
-    /**
-     * Send events from this stream to various PEs.
+     * Send events from this stream to one or more PEs.
      * 
      * @param pes
-     *            a target PE array.
+     *            one or more target prototypes
+     * 
      * 
      * @return the stream object
      */
-    public Stream<T> setPEs(ProcessingElement[] pes) {
+    public Stream<T> setPEs(ProcessingElement... pes) {
         this.targetPEs = pes;
         return this;
     }
@@ -320,7 +307,7 @@
         }
     }
 
-    public Stream<T> register() {
+    Stream<T> register() {
         app.addStream(this);
         return this;
     }
diff --git a/subprojects/s4-edsl/src/main/java/org/apache/s4/edsl/AppBuilder.java b/subprojects/s4-edsl/src/main/java/org/apache/s4/edsl/AppBuilder.java
index fb40b43..4e007b0 100644
--- a/subprojects/s4-edsl/src/main/java/org/apache/s4/edsl/AppBuilder.java
+++ b/subprojects/s4-edsl/src/main/java/org/apache/s4/edsl/AppBuilder.java
@@ -123,7 +123,7 @@
         for (StreamBuilder<? extends Event> sb : streamBuilders) {
             for (String peName : sb.pes) {
                 ProcessingElement pe = getPE(peName);
-                sb.stream.setPE(pe);
+                sb.stream.setPEs(pe);
             }
         }
 
