diff --git a/adv_layout/java/src/com/google/typography/font/sfntly/table/opentype/TaggedData.java b/adv_layout/java/src/com/google/typography/font/sfntly/sample/sfview/TaggedData.java
similarity index 94%
rename from adv_layout/java/src/com/google/typography/font/sfntly/table/opentype/TaggedData.java
rename to adv_layout/java/src/com/google/typography/font/sfntly/sample/sfview/TaggedData.java
index d7d505c..ecd9347 100644
--- a/adv_layout/java/src/com/google/typography/font/sfntly/table/opentype/TaggedData.java
+++ b/adv_layout/java/src/com/google/typography/font/sfntly/sample/sfview/TaggedData.java
@@ -1,13 +1,13 @@
 // Copyright 2012 Google Inc. All Rights Reserved.
 
-package com.google.typography.font.sfntly.table.opentype;
+package com.google.typography.font.sfntly.sample.sfview;
 
 import com.google.typography.font.sfntly.data.ReadableFontData;
 
 /**
  * @author dougfelt@google.com (Doug Felt)
  */
-public interface TaggedData {
+interface TaggedData {
   /**
    * @param string
    *          label
diff --git a/adv_layout/java/src/com/google/typography/font/sfntly/table/opentype/ChainContextSubst.java b/adv_layout/java/src/com/google/typography/font/sfntly/table/opentype/ChainContextSubst.java
index bec4355..59a1131 100644
--- a/adv_layout/java/src/com/google/typography/font/sfntly/table/opentype/ChainContextSubst.java
+++ b/adv_layout/java/src/com/google/typography/font/sfntly/table/opentype/ChainContextSubst.java
@@ -119,7 +119,7 @@
     return (format == 2) ? classSets.lookAheadClassDef : null;
   }
 
-  public static class Builder extends SubstSubtable.Builder<SubstSubtable> {
+  protected static class Builder extends SubstSubtable.Builder<SubstSubtable> {
     private final ChainSubRuleSetArray.Builder arrayBuilder;
 
     protected Builder() {
diff --git a/adv_layout/java/src/com/google/typography/font/sfntly/table/opentype/ContextSubst.java b/adv_layout/java/src/com/google/typography/font/sfntly/table/opentype/ContextSubst.java
index 7dc8860..301f52b 100644
--- a/adv_layout/java/src/com/google/typography/font/sfntly/table/opentype/ContextSubst.java
+++ b/adv_layout/java/src/com/google/typography/font/sfntly/table/opentype/ContextSubst.java
@@ -89,6 +89,11 @@
       arrayBuilder = new SubRuleSetArray.Builder(ligSubst.ruleSets);
     }
 
+    /**
+     * Even though public, not to be used by the end users. Made public only
+     * make it available to packages under
+     * {@code com.google.typography.font.sfntly.table.opentype}.
+     */
     @Override
     public int subDataSizeToSerialize() {
       return arrayBuilder.subDataSizeToSerialize();
diff --git a/adv_layout/java/src/com/google/typography/font/sfntly/table/opentype/component/HeaderTable.java b/adv_layout/java/src/com/google/typography/font/sfntly/table/opentype/component/HeaderTable.java
index a12a84c..a90571e 100644
--- a/adv_layout/java/src/com/google/typography/font/sfntly/table/opentype/component/HeaderTable.java
+++ b/adv_layout/java/src/com/google/typography/font/sfntly/table/opentype/component/HeaderTable.java
@@ -73,6 +73,11 @@
       return FIELD_SIZE * fieldCount();
     }
 
+    /**
+     * Even though public, not to be used by the end users. Made public only
+     * make it available to packages under
+     * {@code com.google.typography.font.sfntly.table.opentype}.
+     */
     @Override
     public int subDataSizeToSerialize() {
       return headerSize();
diff --git a/adv_layout/java/src/com/google/typography/font/sfntly/table/opentype/component/VisibleSubTable.java b/adv_layout/java/src/com/google/typography/font/sfntly/table/opentype/component/VisibleSubTable.java
index 4f20ada..b02a5e0 100644
--- a/adv_layout/java/src/com/google/typography/font/sfntly/table/opentype/component/VisibleSubTable.java
+++ b/adv_layout/java/src/com/google/typography/font/sfntly/table/opentype/component/VisibleSubTable.java
@@ -23,6 +23,11 @@
     @Override
     public abstract int subSerialize(WritableFontData newData);
 
+    /**
+     * Even though public, not to be used by the end users. Made public only
+     * make it available to packages under
+     * {@code com.google.typography.font.sfntly.table.opentype}.
+     */
     @Override
     public abstract int subDataSizeToSerialize();
 
