Reorg folder structure to aligned with latest Java version.
Change header guards.
Updated font_data_test.cc so that VC compilation is not broken.
Updated CMakeLists.txt so that files are grouped in folders in VC.



git-svn-id: http://sfntly.googlecode.com/svn/trunk/cpp/src@58 672e30a5-4c29-85ac-ac6d-611c735e0a51
diff --git a/sample/subsetter/subset_util.cc b/sample/subsetter/subset_util.cc
index 9e4e652..26da65f 100644
--- a/sample/subsetter/subset_util.cc
+++ b/sample/subsetter/subset_util.cc
@@ -17,17 +17,19 @@
 // Remove VC++ nag on fopen.
 #define _CRT_SECURE_NO_WARNINGS
 
+#include "sample/subsetter/subset_util.h"
+
 #include <stdio.h>
+
 #include <vector>
 #include <memory>
 
-#include "sfntly/port/type.h"
 #include "sfntly/font.h"
-#include "sfntly/tools/subsetter/subsetter.h"
-#include "sample/subsetter/subset_util.h"
 #include "sfntly/data/memory_byte_array.h"
 #include "sfntly/port/memory_output_stream.h"
+#include "sfntly/port/type.h"
 #include "sfntly/tag.h"
+#include "sfntly/tools/subsetter/subsetter.h"
 
 namespace sfntly {
 
diff --git a/sample/subsetter/subset_util.h b/sample/subsetter/subset_util.h
index 109d63a..5eb4fe4 100644
--- a/sample/subsetter/subset_util.h
+++ b/sample/subsetter/subset_util.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_SAMPLE_SUBSETTER_SUBSET_UTIL_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_SAMPLE_SUBSETTER_SUBSET_UTIL_H_
+#ifndef SFNTLY_CPP_SRC_SAMPLE_SUBSETTER_SUBSET_UTIL_H_
+#define SFNTLY_CPP_SRC_SAMPLE_SUBSETTER_SUBSET_UTIL_H_
 
 namespace sfntly {
 
@@ -29,4 +29,4 @@
 
 }  // namespace sfntly
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_SAMPLE_SUBSETTER_SUBSET_UTIL_H_
+#endif  // SFNTLY_CPP_SRC_SAMPLE_SUBSETTER_SUBSET_UTIL_H_
diff --git a/sfntly/data/byte_array.h b/sfntly/data/byte_array.h
index 3375244..70dc92f 100644
--- a/sfntly/data/byte_array.h
+++ b/sfntly/data/byte_array.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_DATA_BYTE_ARRAY_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_DATA_BYTE_ARRAY_H_
+#ifndef SFNTLY_CPP_SRC_SFNTLY_DATA_BYTE_ARRAY_H_
+#define SFNTLY_CPP_SRC_SFNTLY_DATA_BYTE_ARRAY_H_
 
 #include "sfntly/port/refcount.h"
 #include "sfntly/port/type.h"
@@ -198,4 +198,4 @@
 
 }  // namespace sfntly
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_DATA_BYTE_ARRAY_H_
+#endif  // SFNTLY_CPP_SRC_SFNTLY_DATA_BYTE_ARRAY_H_
diff --git a/sfntly/data/font_data.h b/sfntly/data/font_data.h
index 6ac4d5d..ec87c72 100644
--- a/sfntly/data/font_data.h
+++ b/sfntly/data/font_data.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_DATA_FONT_DATA_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_DATA_FONT_DATA_H_
+#ifndef SFNTLY_CPP_SRC_SFNTLY_DATA_FONT_DATA_H_
+#define SFNTLY_CPP_SRC_SFNTLY_DATA_FONT_DATA_H_
 
 #include <vector>
 
@@ -127,4 +127,4 @@
 
 }  // namespace sfntly
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_DATA_FONT_DATA_H_
+#endif  // SFNTLY_CPP_SRC_SFNTLY_DATA_FONT_DATA_H_
diff --git a/sfntly/data/font_input_stream.h b/sfntly/data/font_input_stream.h
index 5d9959d..9992b07 100644
--- a/sfntly/data/font_input_stream.h
+++ b/sfntly/data/font_input_stream.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_DATA_FONT_INPUT_STREAM_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_DATA_FONT_INPUT_STREAM_H_
+#ifndef SFNTLY_CPP_SRC_SFNTLY_DATA_FONT_INPUT_STREAM_H_
+#define SFNTLY_CPP_SRC_SFNTLY_DATA_FONT_INPUT_STREAM_H_
 
 #include "sfntly/port/type.h"
 #include "sfntly/port/input_stream.h"
@@ -94,4 +94,4 @@
 
 }  // namespace sfntly
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_DATA_FONT_INPUT_STREAM_H_
+#endif  // SFNTLY_CPP_SRC_SFNTLY_DATA_FONT_INPUT_STREAM_H_
diff --git a/sfntly/data/font_output_stream.h b/sfntly/data/font_output_stream.h
index f420af4..fcd48e8 100644
--- a/sfntly/data/font_output_stream.h
+++ b/sfntly/data/font_output_stream.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_DATA_FONT_OUTPUT_STREAM_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_DATA_FONT_OUTPUT_STREAM_H_
+#ifndef SFNTLY_CPP_SRC_SFNTLY_DATA_FONT_OUTPUT_STREAM_H_
+#define SFNTLY_CPP_SRC_SFNTLY_DATA_FONT_OUTPUT_STREAM_H_
 
 #include "sfntly/port/type.h"
 #include "sfntly/port/output_stream.h"
@@ -76,4 +76,4 @@
 
 }  // namespace sfntly
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_DATA_FONT_OUTPUT_STREAM_H_
+#endif  // SFNTLY_CPP_SRC_SFNTLY_DATA_FONT_OUTPUT_STREAM_H_
diff --git a/sfntly/data/growable_memory_byte_array.h b/sfntly/data/growable_memory_byte_array.h
index 0e35de6..8583a0d 100644
--- a/sfntly/data/growable_memory_byte_array.h
+++ b/sfntly/data/growable_memory_byte_array.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_DATA_GROWABLE_MEMORY_BYTE_ARRAY_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_DATA_GROWABLE_MEMORY_BYTE_ARRAY_H_
+#ifndef SFNTLY_CPP_SRC_SFNTLY_DATA_GROWABLE_MEMORY_BYTE_ARRAY_H_
+#define SFNTLY_CPP_SRC_SFNTLY_DATA_GROWABLE_MEMORY_BYTE_ARRAY_H_
 
 #include "sfntly/data/byte_array.h"
 
@@ -63,4 +63,4 @@
 
 }  // namespace sfntly
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_DATA_GROWABLE_MEMORY_BYTE_ARRAY_H_
+#endif  // SFNTLY_CPP_SRC_SFNTLY_DATA_GROWABLE_MEMORY_BYTE_ARRAY_H_
diff --git a/sfntly/data/memory_byte_array.h b/sfntly/data/memory_byte_array.h
index 9de5230..838fd1a 100644
--- a/sfntly/data/memory_byte_array.h
+++ b/sfntly/data/memory_byte_array.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_DATA_MEMORY_BYTE_ARRAY_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_DATA_MEMORY_BYTE_ARRAY_H_
+#ifndef SFNTLY_CPP_SRC_SFNTLY_DATA_MEMORY_BYTE_ARRAY_H_
+#define SFNTLY_CPP_SRC_SFNTLY_DATA_MEMORY_BYTE_ARRAY_H_
 
 #include "sfntly/data/byte_array.h"
 
@@ -78,4 +78,4 @@
 
 }  // namespace sfntly
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_DATA_MEMORY_BYTE_ARRAY_H_
+#endif  // SFNTLY_CPP_SRC_SFNTLY_DATA_MEMORY_BYTE_ARRAY_H_
diff --git a/sfntly/data/readable_font_data.h b/sfntly/data/readable_font_data.h
index 48b3e77..34d7179 100644
--- a/sfntly/data/readable_font_data.h
+++ b/sfntly/data/readable_font_data.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_DATA_READABLE_FONT_DATA_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_DATA_READABLE_FONT_DATA_H_
+#ifndef SFNTLY_CPP_SRC_SFNTLY_DATA_READABLE_FONT_DATA_H_
+#define SFNTLY_CPP_SRC_SFNTLY_DATA_READABLE_FONT_DATA_H_
 
 #include "sfntly/port/refcount.h"
 #include "sfntly/data/font_data.h"
@@ -287,4 +287,4 @@
 
 }  // namespace sfntly
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_DATA_READABLE_FONT_DATA_H_
+#endif  // SFNTLY_CPP_SRC_SFNTLY_DATA_READABLE_FONT_DATA_H_
diff --git a/sfntly/data/writable_font_data.h b/sfntly/data/writable_font_data.h
index f674ae1..7fac998 100644
--- a/sfntly/data/writable_font_data.h
+++ b/sfntly/data/writable_font_data.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_DATA_WRITABLE_FONT_DATA_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_DATA_WRITABLE_FONT_DATA_H_
+#ifndef SFNTLY_CPP_SRC_SFNTLY_DATA_WRITABLE_FONT_DATA_H_
+#define SFNTLY_CPP_SRC_SFNTLY_DATA_WRITABLE_FONT_DATA_H_
 
 #include "sfntly/data/readable_font_data.h"
 
@@ -179,4 +179,4 @@
 
 }  // namespace sfntly
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_DATA_WRITABLE_FONT_DATA_H_
+#endif  // SFNTLY_CPP_SRC_SFNTLY_DATA_WRITABLE_FONT_DATA_H_
diff --git a/sfntly/font.cc b/sfntly/font.cc
index 8d264b5..14f1505 100644
--- a/sfntly/font.cc
+++ b/sfntly/font.cc
@@ -25,12 +25,12 @@
 #include "sfntly/font_factory.h"
 #include "sfntly/math/fixed1616.h"
 #include "sfntly/math/font_math.h"
-#include "sfntly/font_header_table.h"
-#include "sfntly/horizontal_header_table.h"
-#include "sfntly/horizontal_metrics_table.h"
-#include "sfntly/loca_table.h"
-#include "sfntly/maximum_profile_table.h"
 #include "sfntly/port/exception_type.h"
+#include "sfntly/table/core/font_header_table.h"
+#include "sfntly/table/core/horizontal_header_table.h"
+#include "sfntly/table/core/horizontal_metrics_table.h"
+#include "sfntly/table/core/maximum_profile_table.h"
+#include "sfntly/table/truetype/loca_table.h"
 #include "sfntly/tag.h"
 
 namespace sfntly {
diff --git a/sfntly/font.h b/sfntly/font.h
index 5ce7f17..72b10ac 100644
--- a/sfntly/font.h
+++ b/sfntly/font.h
@@ -14,19 +14,19 @@
  * limitations under the License.
  */
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_FONT_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_FONT_H_
+#ifndef SFNTLY_CPP_SRC_SFNTLY_FONT_H_
+#define SFNTLY_CPP_SRC_SFNTLY_FONT_H_
 
 #include <vector>
 
 #include "sfntly/port/refcount.h"
 #include "sfntly/port/type.h"
 #include "sfntly/port/endian.h"
-#include "sfntly/table.h"
 #include "sfntly/font_data_table_builder_container.h"
 #include "sfntly/data/font_input_stream.h"
 #include "sfntly/data/font_output_stream.h"
 #include "sfntly/data/writable_font_data.h"
+#include "sfntly/table/table.h"
 
 namespace sfntly {
 
@@ -293,4 +293,4 @@
 
 }  // namespace sfntly
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_FONT_H_
+#endif  // SFNTLY_CPP_SRC_SFNTLY_FONT_H_
diff --git a/sfntly/font_data_table_builder_container.h b/sfntly/font_data_table_builder_container.h
index f3ccf61..2818464 100644
--- a/sfntly/font_data_table_builder_container.h
+++ b/sfntly/font_data_table_builder_container.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_FONT_DATA_TABLE_BUILDER_CONTAINER_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_FONT_DATA_TABLE_BUILDER_CONTAINER_H_
+#ifndef SFNTLY_CPP_SRC_SFNTLY_FONT_DATA_TABLE_BUILDER_CONTAINER_H_
+#define SFNTLY_CPP_SRC_SFNTLY_FONT_DATA_TABLE_BUILDER_CONTAINER_H_
 
 #include "sfntly/data/writable_font_data.h"
 
@@ -31,4 +31,4 @@
 
 }  // namespace sfntly
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_FONT_DATA_TABLE_BUILDER_CONTAINER_H_
+#endif  // SFNTLY_CPP_SRC_SFNTLY_FONT_DATA_TABLE_BUILDER_CONTAINER_H_
diff --git a/sfntly/font_factory.h b/sfntly/font_factory.h
index 7be0841..b706b92 100644
--- a/sfntly/font_factory.h
+++ b/sfntly/font_factory.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_FONT_FACTORY_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_FONT_FACTORY_H_
+#ifndef SFNTLY_CPP_SRC_SFNTLY_FONT_FACTORY_H_
+#define SFNTLY_CPP_SRC_SFNTLY_FONT_FACTORY_H_
 
 #include <vector>
 
@@ -143,4 +143,4 @@
 
 }  // namespace sfntly
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_FONT_FACTORY_H_
+#endif  // SFNTLY_CPP_SRC_SFNTLY_FONT_FACTORY_H_
diff --git a/sfntly/math/fixed1616.h b/sfntly/math/fixed1616.h
index 843da51..4abbe18 100644
--- a/sfntly/math/fixed1616.h
+++ b/sfntly/math/fixed1616.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_MATH_FIXED1616_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_MATH_FIXED1616_H_
+#ifndef SFNTLY_CPP_SRC_SFNTLY_MATH_FIXED1616_H_
+#define SFNTLY_CPP_SRC_SFNTLY_MATH_FIXED1616_H_
 
 #include "sfntly/port/type.h"
 
@@ -38,4 +38,4 @@
 
 }  // namespace sfntly
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_MATH_FIXED1616_H_
+#endif  // SFNTLY_CPP_SRC_SFNTLY_MATH_FIXED1616_H_
diff --git a/sfntly/math/font_math.h b/sfntly/math/font_math.h
index f15a786..c469347 100644
--- a/sfntly/math/font_math.h
+++ b/sfntly/math/font_math.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_MATH_FONT_MATH_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_MATH_FONT_MATH_H_
+#ifndef SFNTLY_CPP_SRC_SFNTLY_MATH_FONT_MATH_H_
+#define SFNTLY_CPP_SRC_SFNTLY_MATH_FONT_MATH_H_
 
 #include "sfntly/port/type.h"
 
@@ -35,4 +35,4 @@
 
 }  // namespace sfntly
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_MATH_FONT_MATH_H_
+#endif  // SFNTLY_CPP_SRC_SFNTLY_MATH_FONT_MATH_H_
diff --git a/sfntly/port/atomic.h b/sfntly/port/atomic.h
index abfc429..b381a52 100644
--- a/sfntly/port/atomic.h
+++ b/sfntly/port/atomic.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_PORT_ATOMIC_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_PORT_ATOMIC_H_
+#ifndef SFNTLY_CPP_SRC_SFNTLY_PORT_ATOMIC_H_
+#define SFNTLY_CPP_SRC_SFNTLY_PORT_ATOMIC_H_
 
 #if defined (WIN32)
 
@@ -68,4 +68,4 @@
 
 #endif  // WIN32
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_PORT_ATOMIC_H_
+#endif  // SFNTLY_CPP_SRC_SFNTLY_PORT_ATOMIC_H_
diff --git a/sfntly/port/config.h b/sfntly/port/config.h
index 8e610d0..01c4685 100644
--- a/sfntly/port/config.h
+++ b/sfntly/port/config.h
@@ -14,15 +14,15 @@
  * limitations under the License.
  */
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_PORT_CONFIG_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_PORT_CONFIG_H_
+#ifndef SFNTLY_CPP_SRC_SFNTLY_PORT_CONFIG_H_
+#define SFNTLY_CPP_SRC_SFNTLY_PORT_CONFIG_H_
 
 #if !defined(SFNTLY_BIG_ENDIAN) && !defined(SFNTLY_LITTLE_ENDIAN)
   #if defined (__ppc__) || defined (__ppc64__)
-    #define TYPOGRAPHY_FONT_SFNTLY_BIG_ENDIAN
+    #define SFNTLY_CPP_BIG_ENDIAN
   #else
-    #define TYPOGRAPHY_FONT_SFNTLY_LITTLE_ENDIAN
+    #define SFNTLY_CPP_LITTLE_ENDIAN
   #endif
 #endif
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_PORT_CONFIG_H_
+#endif  // SFNTLY_CPP_SRC_SFNTLY_PORT_CONFIG_H_
diff --git a/sfntly/port/endian.h b/sfntly/port/endian.h
index 1364e42..db58f0a 100644
--- a/sfntly/port/endian.h
+++ b/sfntly/port/endian.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_PORT_ENDIAN_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_PORT_ENDIAN_H_
+#ifndef SFNTLY_CPP_SRC_SFNTLY_PORT_ENDIAN_H_
+#define SFNTLY_CPP_SRC_SFNTLY_PORT_ENDIAN_H_
 
 #include "sfntly/port/config.h"
 #include "sfntly/port/type.h"
@@ -74,4 +74,4 @@
 
 }  // namespace sfntly
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_PORT_ENDIAN_H_
+#endif  // SFNTLY_CPP_SRC_SFNTLY_PORT_ENDIAN_H_
diff --git a/sfntly/port/exception_type.h b/sfntly/port/exception_type.h
index ddeb95b..b96efcb 100644
--- a/sfntly/port/exception_type.h
+++ b/sfntly/port/exception_type.h
@@ -16,8 +16,8 @@
 
 // Exceptions used in sfntly
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_PORT_EXCEPTION_TYPE_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_PORT_EXCEPTION_TYPE_H_
+#ifndef SFNTLY_CPP_SRC_SFNTLY_PORT_EXCEPTION_TYPE_H_
+#define SFNTLY_CPP_SRC_SFNTLY_PORT_EXCEPTION_TYPE_H_
 
 #if !defined (SFNTLY_NO_EXCEPTION)
 
@@ -122,4 +122,4 @@
 
 #endif  // #if !defined (SFNTLY_NO_EXCEPTION)
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_PORT_EXCEPTION_TYPE_H_
+#endif  // SFNTLY_CPP_SRC_SFNTLY_PORT_EXCEPTION_TYPE_H_
diff --git a/sfntly/port/file_input_stream.h b/sfntly/port/file_input_stream.h
index a63726f..cbca25f 100644
--- a/sfntly/port/file_input_stream.h
+++ b/sfntly/port/file_input_stream.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_PORT_FILE_INPUT_STREAM_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_PORT_FILE_INPUT_STREAM_H_
+#ifndef SFNTLY_CPP_SRC_SFNTLY_PORT_FILE_INPUT_STREAM_H_
+#define SFNTLY_CPP_SRC_SFNTLY_PORT_FILE_INPUT_STREAM_H_
 
 #include <stdio.h>
 
@@ -54,4 +54,4 @@
 
 }  // namespace sfntly
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_PORT_FILE_INPUT_STREAM_H_
+#endif  // SFNTLY_CPP_SRC_SFNTLY_PORT_FILE_INPUT_STREAM_H_
diff --git a/sfntly/port/input_stream.h b/sfntly/port/input_stream.h
index a56afb9..5d24036 100644
--- a/sfntly/port/input_stream.h
+++ b/sfntly/port/input_stream.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_PORT_INPUT_STREAM_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_PORT_INPUT_STREAM_H_
+#ifndef SFNTLY_CPP_SRC_SFNTLY_PORT_INPUT_STREAM_H_
+#define SFNTLY_CPP_SRC_SFNTLY_PORT_INPUT_STREAM_H_
 
 #include "sfntly/port/type.h"
 
@@ -46,4 +46,4 @@
 
 }  // namespace sfntly
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_PORT_INPUT_STREAM_H_
+#endif  // SFNTLY_CPP_SRC_SFNTLY_PORT_INPUT_STREAM_H_
diff --git a/sfntly/port/memory_output_stream.h b/sfntly/port/memory_output_stream.h
index 8983ab0..d1eda7f 100644
--- a/sfntly/port/memory_output_stream.h
+++ b/sfntly/port/memory_output_stream.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_PORT_MEMORY_OUTPUT_STREAM_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_PORT_MEMORY_OUTPUT_STREAM_H_
+#ifndef SFNTLY_CPP_SRC_SFNTLY_PORT_MEMORY_OUTPUT_STREAM_H_
+#define SFNTLY_CPP_SRC_SFNTLY_PORT_MEMORY_OUTPUT_STREAM_H_
 
 #include <cstddef>
 #include <vector>
@@ -48,4 +48,4 @@
 
 }  // namespace sfntly
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_PORT_MEMORY_OUTPUT_STREAM_H_
+#endif  // SFNTLY_CPP_SRC_SFNTLY_PORT_MEMORY_OUTPUT_STREAM_H_
diff --git a/sfntly/port/output_stream.h b/sfntly/port/output_stream.h
index d813333..64a6024 100644
--- a/sfntly/port/output_stream.h
+++ b/sfntly/port/output_stream.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_PORT_OUTPUT_STREAM_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_PORT_OUTPUT_STREAM_H_
+#ifndef SFNTLY_CPP_SRC_SFNTLY_PORT_OUTPUT_STREAM_H_
+#define SFNTLY_CPP_SRC_SFNTLY_PORT_OUTPUT_STREAM_H_
 
 #include "sfntly/port/type.h"
 
@@ -43,4 +43,4 @@
 
 }  // namespace sfntly
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_PORT_OUTPUT_STREAM_H_
+#endif  // SFNTLY_CPP_SRC_SFNTLY_PORT_OUTPUT_STREAM_H_
diff --git a/sfntly/port/refcount.h b/sfntly/port/refcount.h
index 6ac09bb..eed5162 100644
--- a/sfntly/port/refcount.h
+++ b/sfntly/port/refcount.h
@@ -63,8 +63,8 @@
 //    end_scope_pointer.Attach(passThrough);
 //    If you are not passing that object back, you are the end of scope.
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_PORT_REFCOUNT_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_PORT_REFCOUNT_H_
+#ifndef SFNTLY_CPP_SRC_SFNTLY_PORT_REFCOUNT_H_
+#define SFNTLY_CPP_SRC_SFNTLY_PORT_REFCOUNT_H_
 
 #if !defined (NDEBUG)
   #define ENABLE_OBJECT_COUNTER
@@ -274,4 +274,4 @@
 
 }  // namespace sfntly
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_PORT_REFCOUNT_H_
+#endif  // SFNTLY_CPP_SRC_SFNTLY_PORT_REFCOUNT_H_
diff --git a/sfntly/port/type.h b/sfntly/port/type.h
index 4691a82..458a364 100644
--- a/sfntly/port/type.h
+++ b/sfntly/port/type.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_PORT_TYPE_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_PORT_TYPE_H_
+#ifndef SFNTLY_CPP_SRC_SFNTLY_PORT_TYPE_H_
+#define SFNTLY_CPP_SRC_SFNTLY_PORT_TYPE_H_
 
 #include <assert.h>
 
@@ -93,4 +93,4 @@
   #define UNREFERENCED_PARAMETER(p) do { (void)p; } while (0)
 #endif
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_PORT_TYPE_H_
+#endif  // SFNTLY_CPP_SRC_SFNTLY_PORT_TYPE_H_
diff --git a/sfntly/cmap_table.cc b/sfntly/table/core/cmap_table.cc
similarity index 99%
rename from sfntly/cmap_table.cc
rename to sfntly/table/core/cmap_table.cc
index 668dc07..7217265 100644
--- a/sfntly/cmap_table.cc
+++ b/sfntly/table/core/cmap_table.cc
@@ -18,8 +18,8 @@
 
 #include <cstdlib>
 
-#include "sfntly/cmap_table.h"
-#include "sfntly/name_table.h"
+#include "sfntly/table/core/cmap_table.h"
+#include "sfntly/table/core/name_table.h"
 #include "sfntly/font.h"
 #include "sfntly/port/endian.h"
 
diff --git a/sfntly/cmap_table.h b/sfntly/table/core/cmap_table.h
similarity index 97%
rename from sfntly/cmap_table.h
rename to sfntly/table/core/cmap_table.h
index cdbcad8..76b4266 100644
--- a/sfntly/cmap_table.h
+++ b/sfntly/table/core/cmap_table.h
@@ -15,15 +15,15 @@
  */
 
 // TODO(arthurhsu): IMPLEMENT: not really used and tested, need cleanup
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_CMAP_TABLE_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_CMAP_TABLE_H_
+#ifndef SFNTLY_CPP_SRC_SFNTLY_TABLE_CORE_CMAP_TABLE_H_
+#define SFNTLY_CPP_SRC_SFNTLY_TABLE_CORE_CMAP_TABLE_H_
 
 #include <vector>
 #include <map>
 
 #include "sfntly/port/refcount.h"
-#include "sfntly/table.h"
-#include "sfntly/subtable.h"
+#include "sfntly/table/table.h"
+#include "sfntly/table/subtable.h"
 
 namespace sfntly {
 
@@ -444,4 +444,4 @@
 
 }  // namespace sfntly
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_CMAP_TABLE_H_
+#endif  // SFNTLY_CPP_SRC_SFNTLY_TABLE_CORE_CMAP_TABLE_H_
diff --git a/sfntly/font_header_table.cc b/sfntly/table/core/font_header_table.cc
similarity index 98%
rename from sfntly/font_header_table.cc
rename to sfntly/table/core/font_header_table.cc
index f896001..da19258 100644
--- a/sfntly/font_header_table.cc
+++ b/sfntly/table/core/font_header_table.cc
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "sfntly/font_header_table.h"
+#include "sfntly/table/core/font_header_table.h"
 
 namespace sfntly {
 /******************************************************************************
diff --git a/sfntly/font_header_table.h b/sfntly/table/core/font_header_table.h
similarity index 95%
rename from sfntly/font_header_table.h
rename to sfntly/table/core/font_header_table.h
index dd6f593..343e62c 100644
--- a/sfntly/font_header_table.h
+++ b/sfntly/table/core/font_header_table.h
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_FONT_HEADER_TABLE_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_FONT_HEADER_TABLE_H_
+#ifndef SFNTLY_CPP_SRC_SFNTLY_TABLE_CORE_FONT_HEADER_TABLE_H_
+#define SFNTLY_CPP_SRC_SFNTLY_TABLE_CORE_FONT_HEADER_TABLE_H_
 
-#include "sfntly/table.h"
+#include "sfntly/table/table.h"
 
 namespace sfntly {
 
@@ -164,4 +164,4 @@
 
 }  // namespace sfntly
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_FONT_HEADER_TABLE_H_
+#endif  // SFNTLY_CPP_SRC_SFNTLY_TABLE_CORE_FONT_HEADER_TABLE_H_
diff --git a/sfntly/horizontal_header_table.cc b/sfntly/table/core/horizontal_header_table.cc
similarity index 85%
rename from sfntly/horizontal_header_table.cc
rename to sfntly/table/core/horizontal_header_table.cc
index a987d70..52b0de2 100644
--- a/sfntly/horizontal_header_table.cc
+++ b/sfntly/table/core/horizontal_header_table.cc
@@ -14,11 +14,7 @@
  * limitations under the License.
  */
 
-// Note: original Java version is inconsistent itself (e.g. readUShort in
-//       Builder but readShort in Table.  Need Fix.
-// TODO(arthurhsu): check with Stuart G and fix it.
-
-#include "sfntly/horizontal_header_table.h"
+#include "sfntly/table/core/horizontal_header_table.h"
 
 namespace sfntly {
 /******************************************************************************
@@ -117,27 +113,27 @@
 }
 
 int32_t HorizontalHeaderTable::Builder::Ascender() {
-  return InternalReadData()->ReadUShort(Offset::kAscender);
+  return InternalReadData()->ReadShort(Offset::kAscender);
 }
 
 void HorizontalHeaderTable::Builder::SetAscender(int32_t ascender) {
-  InternalWriteData()->WriteUShort(Offset::kVersion, ascender);
+  InternalWriteData()->WriteShort(Offset::kVersion, ascender);
 }
 
 int32_t HorizontalHeaderTable::Builder::Descender() {
-  return InternalReadData()->ReadUShort(Offset::kDescender);
+  return InternalReadData()->ReadShort(Offset::kDescender);
 }
 
 void HorizontalHeaderTable::Builder::SetDescender(int32_t descender) {
-  InternalWriteData()->WriteUShort(Offset::kDescender, descender);
+  InternalWriteData()->WriteShort(Offset::kDescender, descender);
 }
 
 int32_t HorizontalHeaderTable::Builder::LineGap() {
-  return InternalReadData()->ReadUShort(Offset::kLineGap);
+  return InternalReadData()->ReadShort(Offset::kLineGap);
 }
 
 void HorizontalHeaderTable::Builder::SetLineGap(int32_t line_gap) {
-  InternalWriteData()->WriteUShort(Offset::kLineGap, line_gap);
+  InternalWriteData()->WriteShort(Offset::kLineGap, line_gap);
 }
 
 int32_t HorizontalHeaderTable::Builder::AdvanceWidthMax() {
@@ -149,27 +145,27 @@
 }
 
 int32_t HorizontalHeaderTable::Builder::MinLeftSideBearing() {
-  return InternalReadData()->ReadUShort(Offset::kMinLeftSideBearing);
+  return InternalReadData()->ReadShort(Offset::kMinLeftSideBearing);
 }
 
 void HorizontalHeaderTable::Builder::SetMinLeftSideBearing(int32_t value) {
-  InternalWriteData()->WriteUShort(Offset::kMinLeftSideBearing, value);
+  InternalWriteData()->WriteShort(Offset::kMinLeftSideBearing, value);
 }
 
 int32_t HorizontalHeaderTable::Builder::MinRightSideBearing() {
-  return InternalReadData()->ReadUShort(Offset::kMinRightSideBearing);
+  return InternalReadData()->ReadShort(Offset::kMinRightSideBearing);
 }
 
 void HorizontalHeaderTable::Builder::SetMinRightSideBearing(int32_t value) {
-  InternalWriteData()->WriteUShort(Offset::kMinRightSideBearing, value);
+  InternalWriteData()->WriteShort(Offset::kMinRightSideBearing, value);
 }
 
 int32_t HorizontalHeaderTable::Builder::XMaxExtent() {
-  return InternalReadData()->ReadUShort(Offset::kXMaxExtent);
+  return InternalReadData()->ReadShort(Offset::kXMaxExtent);
 }
 
 void HorizontalHeaderTable::Builder::SetXMaxExtent(int32_t value) {
-  InternalWriteData()->WriteUShort(Offset::kXMaxExtent, value);
+  InternalWriteData()->WriteShort(Offset::kXMaxExtent, value);
 }
 
 int32_t HorizontalHeaderTable::Builder::CaretSlopeRise() {
diff --git a/sfntly/horizontal_header_table.h b/sfntly/table/core/horizontal_header_table.h
similarity index 92%
rename from sfntly/horizontal_header_table.h
rename to sfntly/table/core/horizontal_header_table.h
index e8a3534..3a3eb6f 100644
--- a/sfntly/horizontal_header_table.h
+++ b/sfntly/table/core/horizontal_header_table.h
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_HORIZONTAL_HEADER_TABLE_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_HORIZONTAL_HEADER_TABLE_H_
+#ifndef SFNTLY_CPP_SRC_SFNTLY_TABLE_CORE_HORIZONTAL_HEADER_TABLE_H_
+#define SFNTLY_CPP_SRC_SFNTLY_TABLE_CORE_HORIZONTAL_HEADER_TABLE_H_
 
-#include "sfntly/table.h"
+#include "sfntly/table/table.h"
 
 namespace sfntly {
 
@@ -107,4 +107,4 @@
 
 }  // namespace sfntly
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_HORIZONTAL_HEADER_TABLE_H_
+#endif  // SFNTLY_CPP_SRC_SFNTLY_TABLE_CORE_HORIZONTAL_HEADER_TABLE_H_
diff --git a/sfntly/horizontal_metrics_table.cc b/sfntly/table/core/horizontal_metrics_table.cc
similarity index 98%
rename from sfntly/horizontal_metrics_table.cc
rename to sfntly/table/core/horizontal_metrics_table.cc
index 026891d..b2463b9 100644
--- a/sfntly/horizontal_metrics_table.cc
+++ b/sfntly/table/core/horizontal_metrics_table.cc
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "sfntly/horizontal_metrics_table.h"
+#include "sfntly/table/core/horizontal_metrics_table.h"
 #include "sfntly/port/exception_type.h"
 
 namespace sfntly {
diff --git a/sfntly/horizontal_metrics_table.h b/sfntly/table/core/horizontal_metrics_table.h
similarity index 91%
rename from sfntly/horizontal_metrics_table.h
rename to sfntly/table/core/horizontal_metrics_table.h
index 55acce6..aa3fa65 100644
--- a/sfntly/horizontal_metrics_table.h
+++ b/sfntly/table/core/horizontal_metrics_table.h
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_HORIZONTAL_METRICS_TABLE_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_HORIZONTAL_METRICS_TABLE_H_
+#ifndef SFNTLY_CPP_SRC_SFNTLY_TABLE_CORE_HORIZONTAL_METRICS_TABLE_H_
+#define SFNTLY_CPP_SRC_SFNTLY_TABLE_CORE_HORIZONTAL_METRICS_TABLE_H_
 
-#include "sfntly/table.h"
+#include "sfntly/table/table.h"
 
 namespace sfntly {
 
@@ -86,4 +86,4 @@
 
 }  // namespace sfntly
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_HORIZONTAL_METRICS_TABLE_H_
+#endif  // SFNTLY_CPP_SRC_SFNTLY_TABLE_CORE_HORIZONTAL_METRICS_TABLE_H_
diff --git a/sfntly/maximum_profile_table.cc b/sfntly/table/core/maximum_profile_table.cc
similarity index 98%
rename from sfntly/maximum_profile_table.cc
rename to sfntly/table/core/maximum_profile_table.cc
index 0ab2aaf..fec508a 100644
--- a/sfntly/maximum_profile_table.cc
+++ b/sfntly/table/core/maximum_profile_table.cc
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "sfntly/maximum_profile_table.h"
+#include "sfntly/table/core/maximum_profile_table.h"
 
 namespace sfntly {
 /******************************************************************************
diff --git a/sfntly/maximum_profile_table.h b/sfntly/table/core/maximum_profile_table.h
similarity index 93%
rename from sfntly/maximum_profile_table.h
rename to sfntly/table/core/maximum_profile_table.h
index 9e0d0a6..10ec872 100644
--- a/sfntly/maximum_profile_table.h
+++ b/sfntly/table/core/maximum_profile_table.h
@@ -14,11 +14,11 @@
  * limitations under the License.
  */
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_MAXIMUM_PROFILE_TABLE_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_MAXIMUM_PROFILE_TABLE_H_
+#ifndef SFNTLY_CPP_SRC_SFNTLY_TABLE_CORE_MAXIMUM_PROFILE_TABLE_H_
+#define SFNTLY_CPP_SRC_SFNTLY_TABLE_CORE_MAXIMUM_PROFILE_TABLE_H_
 
 #include "sfntly/port/refcount.h"
-#include "sfntly/table.h"
+#include "sfntly/table/table.h"
 
 namespace sfntly {
 
@@ -112,4 +112,4 @@
 
 }  // namespace sfntly
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_MAXIMUM_PROFILE_TABLE_H_
+#endif  // SFNTLY_CPP_SRC_SFNTLY_TABLE_CORE_MAXIMUM_PROFILE_TABLE_H_
diff --git a/sfntly/name_table.cc b/sfntly/table/core/name_table.cc
similarity index 99%
rename from sfntly/name_table.cc
rename to sfntly/table/core/name_table.cc
index 649baed..00c4519 100644
--- a/sfntly/name_table.cc
+++ b/sfntly/table/core/name_table.cc
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "sfntly/name_table.h"
+#include "sfntly/table/core/name_table.h"
 
 #include <stdio.h>
 #include <string.h>
diff --git a/sfntly/name_table.h b/sfntly/table/core/name_table.h
similarity index 98%
rename from sfntly/name_table.h
rename to sfntly/table/core/name_table.h
index 64353d6..b5a7f9a 100644
--- a/sfntly/name_table.h
+++ b/sfntly/table/core/name_table.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_NAME_TABLE_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_NAME_TABLE_H_
+#ifndef SFNTLY_CPP_SRC_SFNTLY_TABLE_CORE_NAME_TABLE_H_
+#define SFNTLY_CPP_SRC_SFNTLY_TABLE_CORE_NAME_TABLE_H_
 
 // Must include this before ICU to avoid stdint redefinition issue.
 #include "sfntly/port/type.h"
@@ -26,7 +26,7 @@
 #include <map>
 #include <utility>
 
-#include "sfntly/table.h"
+#include "sfntly/table/table.h"
 
 #if defined U_USING_ICU_NAMESPACE
   U_NAMESPACE_USE
@@ -734,4 +734,4 @@
 
 }  // namespace sfntly
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_NAME_TABLE_H_
+#endif  // SFNTLY_CPP_SRC_SFNTLY_TABLE_CORE_NAME_TABLE_H_
diff --git a/sfntly/os2_table.cc b/sfntly/table/core/os2_table.cc
similarity index 99%
rename from sfntly/os2_table.cc
rename to sfntly/table/core/os2_table.cc
index 24ef4e9..8ab435b 100644
--- a/sfntly/os2_table.cc
+++ b/sfntly/table/core/os2_table.cc
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "sfntly/os2_table.h"
+#include "sfntly/table/core/os2_table.h"
 
 namespace sfntly {
 /******************************************************************************
diff --git a/sfntly/os2_table.h b/sfntly/table/core/os2_table.h
similarity index 97%
rename from sfntly/os2_table.h
rename to sfntly/table/core/os2_table.h
index dcad188..24b6027 100644
--- a/sfntly/os2_table.h
+++ b/sfntly/table/core/os2_table.h
@@ -14,11 +14,11 @@
  * limitations under the License.
  */
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_OS2_TABLE_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_OS2_TABLE_H_
+#ifndef SFNTLY_CPP_SRC_SFNTLY_TABLE_CORE_OS2_TABLE_H_
+#define SFNTLY_CPP_SRC_SFNTLY_TABLE_CORE_OS2_TABLE_H_
 
 #include "sfntly/port/refcount.h"
-#include "sfntly/table.h"
+#include "sfntly/table/table.h"
 
 namespace sfntly {
 
@@ -404,4 +404,4 @@
 
 }  // namespace sfntly
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_OS2_TABLE_H_
+#endif  // SFNTLY_CPP_SRC_SFNTLY_TABLE_CORE_OS2_TABLE_H_
diff --git a/sfntly/font_data_table.cc b/sfntly/table/font_data_table.cc
similarity index 98%
rename from sfntly/font_data_table.cc
rename to sfntly/table/font_data_table.cc
index e6d0984..7be3f77 100644
--- a/sfntly/font_data_table.cc
+++ b/sfntly/table/font_data_table.cc
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "sfntly/font_data_table.h"
+#include "sfntly/table/font_data_table.h"
 
 #include "sfntly/data/font_output_stream.h"
 
diff --git a/sfntly/font_data_table.h b/sfntly/table/font_data_table.h
similarity index 95%
rename from sfntly/font_data_table.h
rename to sfntly/table/font_data_table.h
index 207d492..a2b026f 100644
--- a/sfntly/font_data_table.h
+++ b/sfntly/table/font_data_table.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_FONT_DATA_TABLE_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_FONT_DATA_TABLE_H_
+#ifndef SFNTLY_CPP_SRC_SFNTLY_TABLE_FONT_DATA_TABLE_H_
+#define SFNTLY_CPP_SRC_SFNTLY_TABLE_FONT_DATA_TABLE_H_
 
 #include "sfntly/data/readable_font_data.h"
 #include "sfntly/font_data_table_builder_container.h"
@@ -114,4 +114,4 @@
 
 }  // namespace sfntly
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_FONT_DATA_TABLE_H_
+#endif  // SFNTLY_CPP_SRC_SFNTLY_TABLE_FONT_DATA_TABLE_H_
diff --git a/sfntly/subtable.cc b/sfntly/table/subtable.cc
similarity index 97%
rename from sfntly/subtable.cc
rename to sfntly/table/subtable.cc
index 782fd80..4869a97 100644
--- a/sfntly/subtable.cc
+++ b/sfntly/table/subtable.cc
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "sfntly/subtable.h"
+#include "sfntly/table/subtable.h"
 
 namespace sfntly {
 /******************************************************************************
diff --git a/sfntly/subtable.h b/sfntly/table/subtable.h
similarity index 87%
rename from sfntly/subtable.h
rename to sfntly/table/subtable.h
index 30ecf66..c542881 100644
--- a/sfntly/subtable.h
+++ b/sfntly/table/subtable.h
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_SUBTABLE_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_SUBTABLE_H_
+#ifndef SFNTLY_CPP_SRC_SFNTLY_TABLE_SUBTABLE_H_
+#define SFNTLY_CPP_SRC_SFNTLY_TABLE_SUBTABLE_H_
 
-#include "sfntly/font_data_table.h"
+#include "sfntly/table/font_data_table.h"
 
 namespace sfntly {
 
@@ -46,4 +46,4 @@
 
 }  // namespace sfntly
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_SUBTABLE_H_
+#endif  // SFNTLY_CPP_SRC_SFNTLY_TABLE_SUBTABLE_H_
diff --git a/sfntly/table.cc b/sfntly/table/table.cc
similarity index 94%
rename from sfntly/table.cc
rename to sfntly/table/table.cc
index fc09d10..568f889 100644
--- a/sfntly/table.cc
+++ b/sfntly/table/table.cc
@@ -14,19 +14,19 @@
  * limitations under the License.
  */
 
-#include "sfntly/table.h"
+#include "sfntly/table/table.h"
 
 #include "sfntly/font.h"
 #include "sfntly/tag.h"
-#include "sfntly/cmap_table.h"
-#include "sfntly/font_header_table.h"
-#include "sfntly/glyph_table.h"
-#include "sfntly/horizontal_header_table.h"
-#include "sfntly/horizontal_metrics_table.h"
-#include "sfntly/loca_table.h"
-#include "sfntly/maximum_profile_table.h"
-#include "sfntly/name_table.h"
-#include "sfntly/os2_table.h"
+#include "sfntly/table/core/cmap_table.h"
+#include "sfntly/table/core/font_header_table.h"
+#include "sfntly/table/core/horizontal_header_table.h"
+#include "sfntly/table/core/horizontal_metrics_table.h"
+#include "sfntly/table/core/maximum_profile_table.h"
+#include "sfntly/table/core/name_table.h"
+#include "sfntly/table/core/os2_table.h"
+#include "sfntly/table/truetype/glyph_table.h"
+#include "sfntly/table/truetype/loca_table.h"
 
 namespace sfntly {
 
diff --git a/sfntly/table.h b/sfntly/table/table.h
similarity index 96%
rename from sfntly/table.h
rename to sfntly/table/table.h
index 217abcd..8c8fcc8 100644
--- a/sfntly/table.h
+++ b/sfntly/table/table.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_TABLE_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_TABLE_H_
+#ifndef SFNTLY_CPP_SRC_SFNTLY_TABLE_TABLE_H_
+#define SFNTLY_CPP_SRC_SFNTLY_TABLE_TABLE_H_
 
 #include <set>
 #include <map>
@@ -23,7 +23,7 @@
 #include <utility>
 
 #include "sfntly/port/type.h"
-#include "sfntly/font_data_table.h"
+#include "sfntly/table/font_data_table.h"
 
 namespace sfntly {
 class Font;
@@ -180,4 +180,4 @@
 
 }  // namespace sfntly
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_TABLE_H_
+#endif  // SFNTLY_CPP_SRC_SFNTLY_TABLE_TABLE_H_
diff --git a/sfntly/glyph_table.cc b/sfntly/table/truetype/glyph_table.cc
similarity index 99%
rename from sfntly/glyph_table.cc
rename to sfntly/table/truetype/glyph_table.cc
index ac85ab2..ff289f3 100644
--- a/sfntly/glyph_table.cc
+++ b/sfntly/table/truetype/glyph_table.cc
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "sfntly/glyph_table.h"
+#include "sfntly/table/truetype/glyph_table.h"
 
 #include <stdlib.h>
 
diff --git a/sfntly/glyph_table.h b/sfntly/table/truetype/glyph_table.h
similarity index 97%
rename from sfntly/glyph_table.h
rename to sfntly/table/truetype/glyph_table.h
index c066d47..320c522 100644
--- a/sfntly/glyph_table.h
+++ b/sfntly/table/truetype/glyph_table.h
@@ -14,13 +14,13 @@
  * limitations under the License.
  */
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_GLYPH_TABLE_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_GLYPH_TABLE_H_
+#ifndef SFNTLY_CPP_SRC_SFNTLY_TABLE_TRUETYPE_GLYPH_TABLE_H_
+#define SFNTLY_CPP_SRC_SFNTLY_TABLE_TRUETYPE_GLYPH_TABLE_H_
 
 #include <vector>
 
-#include "sfntly/table.h"
-#include "sfntly/subtable.h"
+#include "sfntly/table/table.h"
+#include "sfntly/table/subtable.h"
 
 namespace sfntly {
 
@@ -327,4 +327,4 @@
 
 }  // namespace sfntly
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_GLYPH_TABLE_H_
+#endif  // SFNTLY_CPP_SRC_SFNTLY_TABLE_TRUETYPE_GLYPH_TABLE_H_
diff --git a/sfntly/loca_table.cc b/sfntly/table/truetype/loca_table.cc
similarity index 98%
rename from sfntly/loca_table.cc
rename to sfntly/table/truetype/loca_table.cc
index 1869e15..537e433 100644
--- a/sfntly/loca_table.cc
+++ b/sfntly/table/truetype/loca_table.cc
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "sfntly/loca_table.h"
+#include "sfntly/table/truetype/loca_table.h"
 #include "sfntly/port/exception_type.h"
 
 namespace sfntly {
diff --git a/sfntly/loca_table.h b/sfntly/table/truetype/loca_table.h
similarity index 94%
rename from sfntly/loca_table.h
rename to sfntly/table/truetype/loca_table.h
index dcf9715..ce7fa44 100644
--- a/sfntly/loca_table.h
+++ b/sfntly/table/truetype/loca_table.h
@@ -14,11 +14,11 @@
  * limitations under the License.
  */
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_LOCA_TABLE_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_LOCA_TABLE_H_
+#ifndef SFNTLY_CPP_SRC_SFNTLY_TABLE_TRUETYPE_LOCA_TABLE_H_
+#define SFNTLY_CPP_SRC_SFNTLY_TABLE_TRUETYPE_LOCA_TABLE_H_
 
-#include "sfntly/table.h"
-#include "sfntly/font_header_table.h"
+#include "sfntly/table/table.h"
+#include "sfntly/table/core/font_header_table.h"
 
 namespace sfntly {
 
@@ -143,4 +143,4 @@
 
 }  // namespace sfntly
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_LOCA_TABLE_H_
+#endif  // SFNTLY_CPP_SRC_SFNTLY_TABLE_TRUETYPE_LOCA_TABLE_H_
diff --git a/sfntly/tag.h b/sfntly/tag.h
index 9a548f6..9b50a85 100644
--- a/sfntly/tag.h
+++ b/sfntly/tag.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_TAG_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_TAG_H_
+#ifndef SFNTLY_CPP_SRC_SFNTLY_TAG_H_
+#define SFNTLY_CPP_SRC_SFNTLY_TAG_H_
 
 #include <cstddef>
 
@@ -108,4 +108,4 @@
 
 }  // namespace sfntly
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_TAG_H_
+#endif  // SFNTLY_CPP_SRC_SFNTLY_TAG_H_
diff --git a/sfntly/tools/subsetter/glyph_table_subsetter.cc b/sfntly/tools/subsetter/glyph_table_subsetter.cc
index 7609f74..76f8624 100644
--- a/sfntly/tools/subsetter/glyph_table_subsetter.cc
+++ b/sfntly/tools/subsetter/glyph_table_subsetter.cc
@@ -16,9 +16,9 @@
 
 #include "sfntly/tools/subsetter/glyph_table_subsetter.h"
 
+#include "sfntly/table/truetype/glyph_table.h"
+#include "sfntly/table/truetype/loca_table.h"
 #include "sfntly/tag.h"
-#include "sfntly/glyph_table.h"
-#include "sfntly/loca_table.h"
 #include "sfntly/tools/subsetter/subsetter.h"
 #include "sfntly/port/exception_type.h"
 
diff --git a/sfntly/tools/subsetter/glyph_table_subsetter.h b/sfntly/tools/subsetter/glyph_table_subsetter.h
index 3687e27..88c7044 100644
--- a/sfntly/tools/subsetter/glyph_table_subsetter.h
+++ b/sfntly/tools/subsetter/glyph_table_subsetter.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_TOOLS_SUBSETTER_GLYPH_TABLE_SUBSETTER_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_TOOLS_SUBSETTER_GLYPH_TABLE_SUBSETTER_H_
+#ifndef SFNTLY_CPP_SRC_SFNTLY_TOOLS_SUBSETTER_GLYPH_TABLE_SUBSETTER_H_
+#define SFNTLY_CPP_SRC_SFNTLY_TOOLS_SUBSETTER_GLYPH_TABLE_SUBSETTER_H_
 
 #include "sfntly/tools/subsetter/table_subsetter_impl.h"
 
@@ -34,4 +34,4 @@
 
 }  // namespace sfntly
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_TOOLS_SUBSETTER_GLYPH_TABLE_SUBSETTER_H_
+#endif  // SFNTLY_CPP_SRC_SFNTLY_TOOLS_SUBSETTER_GLYPH_TABLE_SUBSETTER_H_
diff --git a/sfntly/tools/subsetter.cc b/sfntly/tools/subsetter/subsetter.cc
similarity index 100%
rename from sfntly/tools/subsetter.cc
rename to sfntly/tools/subsetter/subsetter.cc
diff --git a/sfntly/tools/subsetter/subsetter.h b/sfntly/tools/subsetter/subsetter.h
index df417ad..85940a7 100644
--- a/sfntly/tools/subsetter/subsetter.h
+++ b/sfntly/tools/subsetter/subsetter.h
@@ -14,14 +14,14 @@
  * limitations under the License.
  */
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_TOOLS_SUBSETTER_SUBSETTER_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_TOOLS_SUBSETTER_SUBSETTER_H_
+#ifndef SFNTLY_CPP_SRC_SFNTLY_TOOLS_SUBSETTER_SUBSETTER_H_
+#define SFNTLY_CPP_SRC_SFNTLY_TOOLS_SUBSETTER_SUBSETTER_H_
 
 #include <vector>
 
 #include "sfntly/font.h"
 #include "sfntly/font_factory.h"
-#include "sfntly/cmap_table.h"
+#include "sfntly/table/core/cmap_table.h"
 #include "sfntly/tools/subsetter/table_subsetter.h"
 
 namespace sfntly {
@@ -69,4 +69,4 @@
 
 }  // namespace sfntly
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_TOOLS_SUBSETTER_SUBSETTER_H_
+#endif  // SFNTLY_CPP_SRC_SFNTLY_TOOLS_SUBSETTER_SUBSETTER_H_
diff --git a/sfntly/tools/subsetter/table_subsetter.h b/sfntly/tools/subsetter/table_subsetter.h
index 437705c..1336615 100644
--- a/sfntly/tools/subsetter/table_subsetter.h
+++ b/sfntly/tools/subsetter/table_subsetter.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_TOOLS_SUBSETTER_TABLE_SUBSETTER_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_TOOLS_SUBSETTER_TABLE_SUBSETTER_H_
+#ifndef SFNTLY_CPP_SRC_SFNTLY_TOOLS_SUBSETTER_TABLE_SUBSETTER_H_
+#define SFNTLY_CPP_SRC_SFNTLY_TOOLS_SUBSETTER_TABLE_SUBSETTER_H_
 
 #include <vector>
 
@@ -36,4 +36,4 @@
 
 }  // namespace sfntly
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_TOOLS_SUBSETTER_TABLE_SUBSETTER_H_
+#endif  // SFNTLY_CPP_SRC_SFNTLY_TOOLS_SUBSETTER_TABLE_SUBSETTER_H_
diff --git a/sfntly/tools/subsetter/table_subsetter_impl.h b/sfntly/tools/subsetter/table_subsetter_impl.h
index 162464a..de0d9a9 100644
--- a/sfntly/tools/subsetter/table_subsetter_impl.h
+++ b/sfntly/tools/subsetter/table_subsetter_impl.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_TOOLS_SUBSETTER_TABLE_SUBSETTER_IMPL_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_TOOLS_SUBSETTER_TABLE_SUBSETTER_IMPL_H_
+#ifndef SFNTLY_CPP_SRC_SFNTLY_TOOLS_SUBSETTER_TABLE_SUBSETTER_IMPL_H_
+#define SFNTLY_CPP_SRC_SFNTLY_TOOLS_SUBSETTER_TABLE_SUBSETTER_IMPL_H_
 
 #include "sfntly/tools/subsetter/table_subsetter.h"
 
@@ -34,4 +34,4 @@
 
 }  // namespace sfntly
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_SFNTLY_TOOLS_SUBSETTER_TABLE_SUBSETTER_IMPL_H_
+#endif  // SFNTLY_CPP_SRC_SFNTLY_TOOLS_SUBSETTER_TABLE_SUBSETTER_IMPL_H_
diff --git a/test/font_data_test.cc b/test/font_data_test.cc
index ecf9a62..4b0db64 100644
--- a/test/font_data_test.cc
+++ b/test/font_data_test.cc
@@ -46,35 +46,35 @@
 const int32_t SEARCH_TEST_OFFSETS[][5] = {
   // lower[], upper[]
   { (kLowerByteArrayForSearchingLength + kUpperByteArrayForSearchingLength)
-    * sizeof(ushort),
+    * DataSize::kUSHORT,
     0,
-    sizeof(ushort),
-    kLowerByteArrayForSearchingLength * sizeof(ushort),
-    sizeof(ushort) },
+    DataSize::kUSHORT,
+    kLowerByteArrayForSearchingLength * DataSize::kUSHORT,
+    DataSize::kUSHORT },
 
   // {lower, upper} []
   { (kLowerByteArrayForSearchingLength + kUpperByteArrayForSearchingLength)
-    * sizeof(ushort),
+    * DataSize::kUSHORT,
     0,
-    2 * sizeof(ushort),
-    sizeof(ushort),
-    2 * sizeof(ushort) },
+    2 * DataSize::kUSHORT,
+    DataSize::kUSHORT,
+    2 * DataSize::kUSHORT },
 
   // upper[], lower[]
   { (kLowerByteArrayForSearchingLength + kUpperByteArrayForSearchingLength)
-    * sizeof(ushort),
-    kLowerByteArrayForSearchingLength * sizeof(ushort),
-    sizeof(ushort),
+    * DataSize::kUSHORT,
+    kLowerByteArrayForSearchingLength * DataSize::kUSHORT,
+    DataSize::kUSHORT,
     0,
-    sizeof(ushort) },
+    DataSize::kUSHORT },
 
   // {upper, lower} []
   { (kLowerByteArrayForSearchingLength + kUpperByteArrayForSearchingLength)
-    * sizeof(ushort),
-    sizeof(ushort),
-    2 * sizeof(ushort),
+    * DataSize::kUSHORT,
+    DataSize::kUSHORT,
+    2 * DataSize::kUSHORT,
     0,
-    2 * sizeof(ushort) }
+    2 * DataSize::kUSHORT }
 };
 const int32_t kSearchTestOffsetLength = 4;
 
diff --git a/test/font_parsing_test.cc b/test/font_parsing_test.cc
index 3dcbda2..2e35c20 100644
--- a/test/font_parsing_test.cc
+++ b/test/font_parsing_test.cc
@@ -16,13 +16,13 @@
 
 #include "gtest/gtest.h"
 
-#include "sfntly/font.h"
-#include "sfntly/font_factory.h"
-#include "sfntly/font_header_table.h"
-#include "sfntly/tag.h"
-#include "sfntly/table.h"
 #include "sfntly/data/font_input_stream.h"
 #include "sfntly/data/memory_byte_array.h"
+#include "sfntly/font.h"
+#include "sfntly/font_factory.h"
+#include "sfntly/table/core/font_header_table.h"
+#include "sfntly/table/table.h"
+#include "sfntly/tag.h"
 #include "sfntly/port/file_input_stream.h"
 #include "test/test_data.h"
 #include "test/test_font_utils.h"
diff --git a/test/font_subsetter.h b/test/font_subsetter.h
index 6d001eb..07b1b5b 100644
--- a/test/font_subsetter.h
+++ b/test/font_subsetter.h
@@ -15,8 +15,8 @@
  */
 // File is originally from Chromium third_party/sfntly/src/subsetter.
 // Use as test case in sfntly so that problems can be caught in upstream early.
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_TEST_FONT_SUBSETTER_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_TEST_FONT_SUBSETTER_H_
+#ifndef SFNTLY_CPP_SRC_TEST_FONT_SUBSETTER_H_
+#define SFNTLY_CPP_SRC_TEST_FONT_SUBSETTER_H_
 
 #include <cstddef>
 
@@ -48,4 +48,4 @@
                         unsigned char** output_buffer);
 };
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_TEST_FONT_SUBSETTER_H_
+#endif  // SFNTLY_CPP_SRC_TEST_FONT_SUBSETTER_H_
diff --git a/test/name_editing_test.cc b/test/name_editing_test.cc
index 90076cf..ce12cd3 100644
--- a/test/name_editing_test.cc
+++ b/test/name_editing_test.cc
@@ -21,11 +21,11 @@
 #include <unicode/unistr.h>
 
 #include "gtest/gtest.h"
+#include "sfntly/data/memory_byte_array.h"
 #include "sfntly/font.h"
 #include "sfntly/font_factory.h"
-#include "sfntly/name_table.h"
+#include "sfntly/table/core/name_table.h"
 #include "sfntly/tag.h"
-#include "sfntly/data/memory_byte_array.h"
 #include "sfntly/port/memory_output_stream.h"
 #include "test/test_data.h"
 #include "test/test_font_utils.h"
diff --git a/test/otf_basic_editing_test.cc b/test/otf_basic_editing_test.cc
index 1db2d1e..32ba248 100644
--- a/test/otf_basic_editing_test.cc
+++ b/test/otf_basic_editing_test.cc
@@ -17,7 +17,7 @@
 #include "gtest/gtest.h"
 #include "sfntly/font.h"
 #include "sfntly/font_factory.h"
-#include "sfntly/font_header_table.h"
+#include "sfntly/table/core/font_header_table.h"
 #include "sfntly/tag.h"
 #include "sfntly/data/memory_byte_array.h"
 #include "sfntly/port/endian.h"
diff --git a/test/serialization_test.h b/test/serialization_test.h
index 0718f32..8996793 100644
--- a/test/serialization_test.h
+++ b/test/serialization_test.h
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_TEST_SERIALIZATION_TEST_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_TEST_SERIALIZATION_TEST_H_
+#ifndef SFNTLY_CPP_SRC_TEST_SERIALIZATION_TEST_H_
+#define SFNTLY_CPP_SRC_TEST_SERIALIZATION_TEST_H_
 
-#include "sfntly/table.h"
+#include "sfntly/table/table.h"
 
 namespace sfntly {
 
@@ -31,4 +31,4 @@
 
 }  // namespace sfntly
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_TEST_SERIALIZATION_TEST_H_
+#endif  // SFNTLY_CPP_SRC_TEST_SERIALIZATION_TEST_H_
diff --git a/test/subsetter_impl.cc b/test/subsetter_impl.cc
index 7999f50..ea886c0 100644
--- a/test/subsetter_impl.cc
+++ b/test/subsetter_impl.cc
@@ -23,9 +23,9 @@
 #include <map>
 #include <set>
 
-#include "sfntly/glyph_table.h"
-#include "sfntly/loca_table.h"
-#include "sfntly/name_table.h"
+#include "sfntly/table/core/name_table.h"
+#include "sfntly/table/truetype/glyph_table.h"
+#include "sfntly/table/truetype/loca_table.h"
 #include "sfntly/tag.h"
 #include "sfntly/data/memory_byte_array.h"
 #include "sfntly/port/memory_output_stream.h"
diff --git a/test/subsetter_impl.h b/test/subsetter_impl.h
index 6ce0aee..f3a8bf3 100644
--- a/test/subsetter_impl.h
+++ b/test/subsetter_impl.h
@@ -16,8 +16,8 @@
 // File is originally from Chromium third_party/sfntly/src/subsetter.
 // Use as test case in sfntly so that problems can be caught in upstream early.
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_TEST_SUBSETTER_IMPL_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_TEST_SUBSETTER_IMPL_H_
+#ifndef SFNTLY_CPP_SRC_TEST_SUBSETTER_IMPL_H_
+#define SFNTLY_CPP_SRC_TEST_SUBSETTER_IMPL_H_
 
 #include "sfntly/font.h"
 #include "sfntly/font_factory.h"
@@ -72,4 +72,4 @@
 
 }  // namespace sfntly
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_TEST_SUBSETTER_IMPL_H_
+#endif  // SFNTLY_CPP_SRC_TEST_SUBSETTER_IMPL_H_
diff --git a/test/test_data.h b/test/test_data.h
index b6aa4ea..1b50549 100644
--- a/test/test_data.h
+++ b/test/test_data.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_TEST_TEST_DATA_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_TEST_TEST_DATA_H_
+#ifndef SFNTLY_CPP_SRC_TEST_TEST_DATA_H_
+#define SFNTLY_CPP_SRC_TEST_TEST_DATA_H_
 
 #include "sfntly/tag.h"
 
@@ -42,4 +42,4 @@
 
 }  // namespace sfntly
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_TEST_TEST_DATA_H_
+#endif  // SFNTLY_CPP_SRC_TEST_TEST_DATA_H_
diff --git a/test/test_font_utils.h b/test/test_font_utils.h
index 21296f1..b8a93b9 100644
--- a/test/test_font_utils.h
+++ b/test/test_font_utils.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_TEST_TEST_FONT_UTILS_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_TEST_TEST_FONT_UTILS_H_
+#ifndef SFNTLY_CPP_SRC_TEST_TEST_FONT_UTILS_H_
+#define SFNTLY_CPP_SRC_TEST_TEST_FONT_UTILS_H_
 
 #include "sfntly/font.h"
 #include "sfntly/font_factory.h"
@@ -38,4 +38,4 @@
 
 }  // namespace sfntly
 
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_TEST_TEST_FONT_UTILS_H_
+#endif  // SFNTLY_CPP_SRC_TEST_TEST_FONT_UTILS_H_
diff --git a/test/test_utils.h b/test/test_utils.h
index 4d692e1..af3ffd6 100644
--- a/test/test_utils.h
+++ b/test/test_utils.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_TEST_TEST_UTILS_H_
-#define TYPOGRAPHY_FONT_SFNTLY_SRC_TEST_TEST_UTILS_H_
+#ifndef SFNTLY_CPP_SRC_TEST_TEST_UTILS_H_
+#define SFNTLY_CPP_SRC_TEST_TEST_UTILS_H_
 
 // Must include this before ICU to avoid stdint redefinition issue.
 #include "sfntly/port/type.h"
@@ -107,4 +107,4 @@
   static const char* Extension(const char* file_path);
 };
 }
-#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_TEST_TEST_UTILS_H_
+#endif  // SFNTLY_CPP_SRC_TEST_TEST_UTILS_H_
diff --git a/test/verify_glyf.cc b/test/verify_glyf.cc
index f13f5ce..ff89638 100644
--- a/test/verify_glyf.cc
+++ b/test/verify_glyf.cc
@@ -16,7 +16,7 @@
 
 #include "gtest/gtest.h"
 #include "sfntly/font.h"
-#include "sfntly/glyph_table.h"
+#include "sfntly/table/truetype/glyph_table.h"
 #include "test/serialization_test.h"
 
 namespace sfntly {
diff --git a/test/verify_hhea.cc b/test/verify_hhea.cc
index 537b224..491238a 100644
--- a/test/verify_hhea.cc
+++ b/test/verify_hhea.cc
@@ -16,7 +16,7 @@
 
 #include "gtest/gtest.h"
 #include "sfntly/font.h"
-#include "sfntly/horizontal_header_table.h"
+#include "sfntly/table/core/horizontal_header_table.h"
 #include "test/serialization_test.h"
 
 namespace sfntly {
diff --git a/test/verify_hmtx.cc b/test/verify_hmtx.cc
index 000597a..67ea6a3 100644
--- a/test/verify_hmtx.cc
+++ b/test/verify_hmtx.cc
@@ -16,7 +16,7 @@
 
 #include "gtest/gtest.h"
 #include "sfntly/font.h"
-#include "sfntly/horizontal_metrics_table.h"
+#include "sfntly/table/core/horizontal_metrics_table.h"
 #include "test/serialization_test.h"
 
 namespace sfntly {
diff --git a/test/verify_loca.cc b/test/verify_loca.cc
index a1f14c2..0e36ce8 100644
--- a/test/verify_loca.cc
+++ b/test/verify_loca.cc
@@ -16,7 +16,7 @@
 
 #include "gtest/gtest.h"
 #include "sfntly/font.h"
-#include "sfntly/loca_table.h"
+#include "sfntly/table/truetype/loca_table.h"
 #include "test/serialization_test.h"
 
 namespace sfntly {
diff --git a/test/verify_maxp.cc b/test/verify_maxp.cc
index d789fdb..3bd4490 100644
--- a/test/verify_maxp.cc
+++ b/test/verify_maxp.cc
@@ -16,7 +16,7 @@
 
 #include "gtest/gtest.h"
 #include "sfntly/font.h"
-#include "sfntly/maximum_profile_table.h"
+#include "sfntly/table/core/maximum_profile_table.h"
 #include "test/serialization_test.h"
 
 namespace sfntly {
diff --git a/test/verify_name.cc b/test/verify_name.cc
index d55d924..fa56de5 100644
--- a/test/verify_name.cc
+++ b/test/verify_name.cc
@@ -16,7 +16,7 @@
 
 #include "gtest/gtest.h"
 #include "sfntly/font.h"
-#include "sfntly/name_table.h"
+#include "sfntly/table/core/name_table.h"
 #include "test/serialization_test.h"
 
 namespace sfntly {
diff --git a/test/verify_os2.cc b/test/verify_os2.cc
index e604be9..8f6b9ed 100644
--- a/test/verify_os2.cc
+++ b/test/verify_os2.cc
@@ -16,7 +16,7 @@
 
 #include "gtest/gtest.h"
 #include "sfntly/font.h"
-#include "sfntly/os2_table.h"
+#include "sfntly/table/core/os2_table.h"
 #include "test/serialization_test.h"
 
 namespace sfntly {