Making more things private, removing KOList and providing some fake Javadoc
diff --git a/ko-bck2brwsr/pom.xml b/ko-bck2brwsr/pom.xml
index 96154dc..8649ad7 100644
--- a/ko-bck2brwsr/pom.xml
+++ b/ko-bck2brwsr/pom.xml
@@ -22,6 +22,13 @@
                   <target>1.7</target>
               </configuration>
           </plugin>
+          <plugin>
+              <groupId>org.apache.maven.plugins</groupId>
+              <artifactId>maven-javadoc-plugin</artifactId>
+              <configuration>
+                  <skip>false</skip>
+              </configuration>
+          </plugin>
       </plugins>
   </build>
   <dependencies>
diff --git a/ko-bck2brwsr/src/main/java/org/apidesign/html/ko2brwsr/BrwsrCntxt.java b/ko-bck2brwsr/src/main/java/org/apidesign/html/ko2brwsr/BrwsrCntxt.java
index fa91cf4..e317c86 100644
--- a/ko-bck2brwsr/src/main/java/org/apidesign/html/ko2brwsr/BrwsrCntxt.java
+++ b/ko-bck2brwsr/src/main/java/org/apidesign/html/ko2brwsr/BrwsrCntxt.java
@@ -32,7 +32,7 @@
  *
  * @author Jaroslav Tulach <jtulach@netbeans.org>
  */
-public final class BrwsrCntxt implements Technology<Object>, Transfer {
+final class BrwsrCntxt implements Technology<Object>, Transfer {
     private BrwsrCntxt() {}
     
     public static final Context DEFAULT;
diff --git a/ko-bck2brwsr/src/main/java/org/apidesign/html/ko2brwsr/BrwsrCntxtPrvdr.java b/ko-bck2brwsr/src/main/java/org/apidesign/html/ko2brwsr/BrwsrCntxtPrvdr.java
index 475d037..f3108dd 100644
--- a/ko-bck2brwsr/src/main/java/org/apidesign/html/ko2brwsr/BrwsrCntxtPrvdr.java
+++ b/ko-bck2brwsr/src/main/java/org/apidesign/html/ko2brwsr/BrwsrCntxtPrvdr.java
@@ -25,9 +25,15 @@
 import org.apidesign.html.json.spi.ContextProvider;
 import org.openide.util.lookup.ServiceProvider;
 
-/**
+/** This is an implementation package - just
+ * include its JAR on classpath and use official {@link Context} API
+ * to access the functionality.
+ * <p>
+ * Provides binding between models and <a href="http://bck2brwsr.apidesign.org">
+ * Bck2Brwsr</a> VM.
+ * Registers {@link ContextProvider}, so {@link ServiceLoader} can find it.
  *
- * @author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
+ * @author Jaroslav Tulach <jtulach@netbeans.org>
  */
 @ServiceProvider(service = ContextProvider.class)
 public final class BrwsrCntxtPrvdr implements ContextProvider {
diff --git a/ko-bck2brwsr/src/main/java/org/apidesign/html/ko2brwsr/ConvertTypes.java b/ko-bck2brwsr/src/main/java/org/apidesign/html/ko2brwsr/ConvertTypes.java
index 8c9f982..5e99781 100644
--- a/ko-bck2brwsr/src/main/java/org/apidesign/html/ko2brwsr/ConvertTypes.java
+++ b/ko-bck2brwsr/src/main/java/org/apidesign/html/ko2brwsr/ConvertTypes.java
@@ -26,7 +26,7 @@
  *
  * @author Jaroslav Tulach <jtulach@netbeans.org>
  */
-public final class ConvertTypes {
+final class ConvertTypes {
     ConvertTypes() {
     }
     
diff --git a/ko-bck2brwsr/src/main/java/org/apidesign/html/ko2brwsr/KOList.java b/ko-bck2brwsr/src/main/java/org/apidesign/html/ko2brwsr/KOList.java
deleted file mode 100644
index 65ee501..0000000
--- a/ko-bck2brwsr/src/main/java/org/apidesign/html/ko2brwsr/KOList.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/**
- * HTML via Java(tm) Language Bindings
- * Copyright (C) 2013 Jaroslav Tulach <jaroslav.tulach@apidesign.org>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details. apidesign.org
- * designates this particular file as subject to the
- * "Classpath" exception as provided by apidesign.org
- * in the License file that accompanied this code.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. Look for COPYING file in the top folder.
- * If not, see http://wiki.apidesign.org/wiki/GPLwithClassPathException
- */
-package org.apidesign.html.ko2brwsr;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import org.apidesign.bck2brwsr.core.JavaScriptOnly;
-
-/**
- *
- * @author Jaroslav Tulach <jtulach@netbeans.org>
- */
-public final class KOList<T> extends ArrayList<T> {
-    private final String name;
-    private final String[] deps;
-    private Knockout model;
-    private Runnable onchange;
-
-    public KOList(String name, String... deps) {
-        this.name = name;
-        this.deps = deps;
-    }
-    
-    public void assign(Knockout model) {
-        if (this.model != model) {
-            this.model = model;
-            notifyChange();
-        }
-    }
-    
-    public KOList<T> onChange(Runnable r) {
-        if (this.onchange != null) {
-            throw new IllegalStateException();
-        }
-        this.onchange = r;
-        return this;
-    }
-
-    @Override
-    public boolean add(T e) {
-        boolean ret = super.add(e);
-        notifyChange();
-        return ret;
-    }
-
-    @Override
-    public boolean addAll(Collection<? extends T> c) {
-        boolean ret = super.addAll(c);
-        notifyChange();
-        return ret;
-    }
-
-    @Override
-    public boolean addAll(int index, Collection<? extends T> c) {
-        boolean ret = super.addAll(index, c);
-        notifyChange();
-        return ret;
-    }
-
-    @Override
-    public boolean remove(Object o) {
-        boolean ret = super.remove(o);
-        notifyChange();
-        return ret;
-    }
-
-    @Override
-    public void clear() {
-        super.clear();
-        notifyChange();
-    }
-
-    @Override
-    public boolean removeAll(Collection<?> c) {
-        boolean ret = super.removeAll(c);
-        notifyChange();
-        return ret;
-    }
-
-    @Override
-    public boolean retainAll(Collection<?> c) {
-        boolean ret = super.retainAll(c);
-        notifyChange();
-        return ret;
-    }
-
-    @Override
-    public T set(int index, T element) {
-        T ret = super.set(index, element);
-        notifyChange();
-        return ret;
-    }
-
-    @Override
-    public void add(int index, T element) {
-        super.add(index, element);
-        notifyChange();
-    }
-
-    @Override
-    public T remove(int index) {
-        T ret = super.remove(index);
-        notifyChange();
-        return ret;
-    }
-
-    @Override
-    public String toString() {
-        Iterator<T> it = iterator();
-        if (!it.hasNext()) {
-            return "[]";
-        }
-        String sep = "";
-        StringBuilder sb = new StringBuilder();
-        sb.append('[');
-        while (it.hasNext()) {
-            T t = it.next();
-            sb.append(sep);
-            sb.append(ConvertTypes.toJSON(t));
-            sep = ",";
-        }
-        sb.append(']');
-        return sb.toString();
-    }
-    
-    
-    @JavaScriptOnly(name = "koArray", value = "function() { return this.toArray___3Ljava_lang_Object_2(); }")
-    private static native int koArray();
-
-    private void notifyChange() {
-        Knockout m = model;
-        if (m != null) {
-            m.valueHasMutated(name);
-            for (String dependant : deps) {
-                m.valueHasMutated(dependant);
-            }
-        }
-        Runnable r = onchange;
-        if (r != null) {
-            r.run();
-        }
-    }
-
-    @Override
-    public KOList clone() {
-        KOList ko = (KOList)super.clone();
-        ko.model = null;
-        return ko;
-    }
-    
-}
diff --git a/ko-bck2brwsr/src/main/java/org/apidesign/html/ko2brwsr/Knockout.java b/ko-bck2brwsr/src/main/java/org/apidesign/html/ko2brwsr/Knockout.java
index 4531088..5911c17 100644
--- a/ko-bck2brwsr/src/main/java/org/apidesign/html/ko2brwsr/Knockout.java
+++ b/ko-bck2brwsr/src/main/java/org/apidesign/html/ko2brwsr/Knockout.java
@@ -25,12 +25,12 @@
 import org.apidesign.bck2brwsr.core.ExtraJavaScript;
 import org.apidesign.bck2brwsr.core.JavaScriptBody;
 
-/** Provides binding between models and 
+/** Provides binding between models and bck2brwsr VM.
  *
  * @author Jaroslav Tulach <jtulach@netbeans.org>
  */
 @ExtraJavaScript(resource = "/org/apidesign/bck2brwsr/htmlpage/knockout-2.2.1.js")
-public class Knockout {
+final class Knockout {
     /** used by tests */
     static Knockout next;
     private final Object model;