You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucy.apache.org by nw...@apache.org on 2014/07/06 15:46:33 UTC

[3/3] git commit: refs/heads/rename-vtable - Rename Clownfish::VTable to Clownfish::Class

Rename Clownfish::VTable to Clownfish::Class


Project: http://git-wip-us.apache.org/repos/asf/lucy/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy/commit/b1975f5d
Tree: http://git-wip-us.apache.org/repos/asf/lucy/tree/b1975f5d
Diff: http://git-wip-us.apache.org/repos/asf/lucy/diff/b1975f5d

Branch: refs/heads/rename-vtable
Commit: b1975f5d1c3e312ce227679f6a2ec0b66cfa1348
Parents: 7ec2766
Author: Nick Wellnhofer <we...@aevum.de>
Authored: Sun Jul 6 15:21:44 2014 +0200
Committer: Nick Wellnhofer <we...@aevum.de>
Committed: Sun Jul 6 15:46:03 2014 +0200

----------------------------------------------------------------------
 c/src/Lucy/Document/Doc.c                       |  2 +-
 core/Lucy/Analysis/Analyzer.c                   |  4 +--
 core/Lucy/Analysis/CaseFolder.c                 |  2 +-
 core/Lucy/Analysis/EasyAnalyzer.c               |  2 +-
 core/Lucy/Analysis/Inversion.c                  |  2 +-
 core/Lucy/Analysis/Normalizer.c                 |  2 +-
 core/Lucy/Analysis/PolyAnalyzer.c               |  2 +-
 core/Lucy/Analysis/RegexTokenizer.c             |  2 +-
 core/Lucy/Analysis/SnowballStemmer.c            |  2 +-
 core/Lucy/Analysis/SnowballStopFilter.c         |  2 +-
 core/Lucy/Analysis/StandardTokenizer.c          |  2 +-
 core/Lucy/Analysis/Token.c                      |  2 +-
 core/Lucy/Document/Doc.c                        |  2 +-
 core/Lucy/Document/HitDoc.c                     |  2 +-
 core/Lucy/Highlight/HeatMap.c                   |  2 +-
 core/Lucy/Highlight/Highlighter.c               |  6 ++--
 core/Lucy/Index/BackgroundMerger.c              |  4 +--
 core/Lucy/Index/BitVecDelDocs.c                 |  2 +-
 core/Lucy/Index/DeletionsReader.c               |  4 +--
 core/Lucy/Index/DeletionsWriter.c               | 10 +++---
 core/Lucy/Index/DocReader.c                     |  4 +--
 core/Lucy/Index/DocVector.c                     |  2 +-
 core/Lucy/Index/DocWriter.c                     |  4 +--
 core/Lucy/Index/FilePurger.c                    |  2 +-
 core/Lucy/Index/HighlightReader.c               |  4 +--
 core/Lucy/Index/HighlightWriter.c               |  4 +--
 core/Lucy/Index/IndexManager.c                  |  2 +-
 core/Lucy/Index/Indexer.c                       |  4 +--
 core/Lucy/Index/Inverter.c                      |  4 +--
 core/Lucy/Index/LexIndex.c                      |  6 ++--
 core/Lucy/Index/LexiconReader.c                 |  4 +--
 core/Lucy/Index/LexiconWriter.c                 |  2 +-
 core/Lucy/Index/PolyLexicon.c                   |  4 +--
 core/Lucy/Index/PolyReader.c                    |  6 ++--
 core/Lucy/Index/Posting/MatchPosting.c          | 12 +++----
 core/Lucy/Index/Posting/RawPosting.c            |  4 +--
 core/Lucy/Index/Posting/RichPosting.c           |  8 ++---
 core/Lucy/Index/Posting/ScorePosting.c          |  8 ++---
 core/Lucy/Index/PostingListReader.c             |  2 +-
 core/Lucy/Index/PostingListWriter.c             |  2 +-
 core/Lucy/Index/PostingPool.c                   |  8 ++---
 core/Lucy/Index/RawLexicon.c                    |  2 +-
 core/Lucy/Index/RawPostingList.c                |  2 +-
 core/Lucy/Index/SegLexicon.c                    |  2 +-
 core/Lucy/Index/SegPostingList.c                |  2 +-
 core/Lucy/Index/SegReader.c                     |  4 +--
 core/Lucy/Index/SegWriter.c                     |  2 +-
 core/Lucy/Index/Segment.c                       |  2 +-
 core/Lucy/Index/Similarity.c                    |  8 ++---
 core/Lucy/Index/SkipStepper.c                   |  2 +-
 core/Lucy/Index/Snapshot.c                      |  2 +-
 core/Lucy/Index/SortCache/NumericSortCache.c    |  8 ++---
 core/Lucy/Index/SortCache/TextSortCache.c       |  2 +-
 core/Lucy/Index/SortFieldWriter.c               | 12 +++----
 core/Lucy/Index/SortReader.c                    |  2 +-
 core/Lucy/Index/SortWriter.c                    |  6 ++--
 core/Lucy/Index/TermInfo.c                      |  2 +-
 core/Lucy/Index/TermVector.c                    |  2 +-
 core/Lucy/Object/BitVector.c                    |  4 +--
 core/Lucy/Object/I32Array.c                     |  6 ++--
 core/Lucy/Plan/Architecture.c                   | 30 ++++++++--------
 core/Lucy/Plan/BlobType.c                       |  8 ++---
 core/Lucy/Plan/FieldType.c                      | 12 +++----
 core/Lucy/Plan/FullTextType.c                   |  8 ++---
 core/Lucy/Plan/NumericType.c                    | 26 +++++++-------
 core/Lucy/Plan/Schema.c                         | 22 ++++++------
 core/Lucy/Plan/StringType.c                     |  8 ++---
 core/Lucy/Plan/TextType.c                       |  2 +-
 core/Lucy/Search/ANDMatcher.c                   |  2 +-
 core/Lucy/Search/ANDQuery.c                     |  4 +--
 core/Lucy/Search/BitVecMatcher.c                |  2 +-
 core/Lucy/Search/Collector.c                    |  4 +--
 core/Lucy/Search/Collector/SortCollector.c      |  4 +--
 core/Lucy/Search/HitQueue.c                     |  2 +-
 core/Lucy/Search/Hits.c                         |  2 +-
 core/Lucy/Search/IndexSearcher.c                | 10 +++---
 core/Lucy/Search/LeafQuery.c                    |  2 +-
 core/Lucy/Search/MatchAllMatcher.c              |  2 +-
 core/Lucy/Search/MatchAllQuery.c                |  4 +--
 core/Lucy/Search/MatchDoc.c                     |  2 +-
 core/Lucy/Search/Matcher.c                      |  1 -
 core/Lucy/Search/NOTMatcher.c                   |  2 +-
 core/Lucy/Search/NOTQuery.c                     |  4 +--
 core/Lucy/Search/NoMatchMatcher.c               |  2 +-
 core/Lucy/Search/NoMatchQuery.c                 |  4 +--
 core/Lucy/Search/ORMatcher.c                    |  4 +--
 core/Lucy/Search/ORQuery.c                      |  4 +--
 core/Lucy/Search/PhraseMatcher.c                |  2 +-
 core/Lucy/Search/PhraseQuery.c                  |  6 ++--
 core/Lucy/Search/PolyMatcher.c                  |  2 +-
 core/Lucy/Search/PolySearcher.c                 |  8 ++---
 core/Lucy/Search/Query.c                        |  4 +--
 core/Lucy/Search/QueryParser.c                  |  2 +-
 core/Lucy/Search/QueryParser/ParserElem.c       |  6 ++--
 core/Lucy/Search/QueryParser/ParserElem.cfh     |  2 +-
 core/Lucy/Search/QueryParser/QueryLexer.c       |  2 +-
 core/Lucy/Search/RangeMatcher.c                 |  2 +-
 core/Lucy/Search/RangeQuery.c                   |  6 ++--
 core/Lucy/Search/RequiredOptionalMatcher.c      |  2 +-
 core/Lucy/Search/RequiredOptionalQuery.c        |  4 +--
 core/Lucy/Search/SeriesMatcher.c                |  2 +-
 core/Lucy/Search/SortRule.c                     |  2 +-
 core/Lucy/Search/SortSpec.c                     |  4 +--
 core/Lucy/Search/Span.c                         |  2 +-
 core/Lucy/Search/TermQuery.c                    |  6 ++--
 core/Lucy/Search/TopDocs.c                      |  2 +-
 core/Lucy/Store/CompoundFileReader.c            |  4 +--
 core/Lucy/Store/CompoundFileWriter.c            |  2 +-
 core/Lucy/Store/FSDirHandle.c                   |  2 +-
 core/Lucy/Store/FSFileHandle.c                  |  2 +-
 core/Lucy/Store/FSFolder.c                      |  2 +-
 core/Lucy/Store/FileWindow.c                    |  2 +-
 core/Lucy/Store/InStream.c                      | 10 +++---
 core/Lucy/Store/Lock.c                          |  4 +--
 core/Lucy/Store/LockFactory.c                   |  2 +-
 core/Lucy/Store/OutStream.c                     |  2 +-
 core/Lucy/Store/RAMDirHandle.c                  |  2 +-
 core/Lucy/Store/RAMFile.c                       |  2 +-
 core/Lucy/Store/RAMFileHandle.c                 |  2 +-
 core/Lucy/Store/RAMFolder.c                     |  2 +-
 core/Lucy/Store/SharedLock.c                    |  2 +-
 core/Lucy/Test/Analysis/TestAnalyzer.c          |  4 +--
 core/Lucy/Test/Analysis/TestCaseFolder.c        |  2 +-
 core/Lucy/Test/Analysis/TestNormalizer.c        |  2 +-
 core/Lucy/Test/Analysis/TestPolyAnalyzer.c      |  2 +-
 core/Lucy/Test/Analysis/TestRegexTokenizer.c    |  2 +-
 core/Lucy/Test/Analysis/TestSnowballStemmer.c   |  2 +-
 .../Lucy/Test/Analysis/TestSnowballStopFilter.c |  4 +--
 core/Lucy/Test/Analysis/TestStandardTokenizer.c |  2 +-
 core/Lucy/Test/Highlight/TestHeatMap.c          |  2 +-
 core/Lucy/Test/Highlight/TestHighlighter.c      |  2 +-
 core/Lucy/Test/Index/TestDocWriter.c            |  2 +-
 core/Lucy/Test/Index/TestHighlightWriter.c      |  2 +-
 core/Lucy/Test/Index/TestIndexManager.c         |  2 +-
 core/Lucy/Test/Index/TestPolyReader.c           |  2 +-
 core/Lucy/Test/Index/TestPostingListWriter.c    |  2 +-
 core/Lucy/Test/Index/TestSegWriter.c            |  2 +-
 core/Lucy/Test/Index/TestSegment.c              |  2 +-
 core/Lucy/Test/Index/TestSnapshot.c             |  2 +-
 core/Lucy/Test/Index/TestSortWriter.c           |  8 ++---
 core/Lucy/Test/Index/TestTermInfo.c             |  2 +-
 core/Lucy/Test/Object/TestBitVector.c           |  2 +-
 core/Lucy/Test/Object/TestI32Array.c            |  2 +-
 core/Lucy/Test/Plan/TestArchitecture.c          |  2 +-
 core/Lucy/Test/Plan/TestBlobType.c              |  2 +-
 core/Lucy/Test/Plan/TestFieldMisc.c             |  2 +-
 core/Lucy/Test/Plan/TestFieldType.c             |  8 ++---
 core/Lucy/Test/Plan/TestFullTextType.c          |  2 +-
 core/Lucy/Test/Plan/TestNumericType.c           |  2 +-
 core/Lucy/Test/Search/TestLeafQuery.c           |  2 +-
 core/Lucy/Test/Search/TestMatchAllQuery.c       |  2 +-
 core/Lucy/Test/Search/TestNOTQuery.c            |  2 +-
 core/Lucy/Test/Search/TestNoMatchQuery.c        |  2 +-
 core/Lucy/Test/Search/TestPhraseQuery.c         |  2 +-
 core/Lucy/Test/Search/TestPolyQuery.c           |  4 +--
 core/Lucy/Test/Search/TestQueryParser.c         |  2 +-
 core/Lucy/Test/Search/TestQueryParserLogic.c    |  2 +-
 core/Lucy/Test/Search/TestQueryParserSyntax.c   |  2 +-
 core/Lucy/Test/Search/TestRangeQuery.c          |  2 +-
 core/Lucy/Test/Search/TestReqOptQuery.c         |  2 +-
 core/Lucy/Test/Search/TestSeriesMatcher.c       |  2 +-
 core/Lucy/Test/Search/TestSortSpec.c            |  4 +--
 core/Lucy/Test/Search/TestSpan.c                |  2 +-
 core/Lucy/Test/Search/TestTermQuery.c           |  2 +-
 core/Lucy/Test/Store/MockFileHandle.c           |  2 +-
 core/Lucy/Test/Store/TestCompoundFileReader.c   |  2 +-
 core/Lucy/Test/Store/TestCompoundFileWriter.c   |  2 +-
 core/Lucy/Test/Store/TestFSDirHandle.c          |  2 +-
 core/Lucy/Test/Store/TestFSFileHandle.c         |  2 +-
 core/Lucy/Test/Store/TestFSFolder.c             |  2 +-
 core/Lucy/Test/Store/TestFileHandle.c           | 14 ++++----
 core/Lucy/Test/Store/TestFolder.c               |  2 +-
 core/Lucy/Test/Store/TestIOChunks.c             |  2 +-
 core/Lucy/Test/Store/TestIOPrimitives.c         |  2 +-
 core/Lucy/Test/Store/TestInStream.c             |  2 +-
 core/Lucy/Test/Store/TestRAMDirHandle.c         |  2 +-
 core/Lucy/Test/Store/TestRAMFileHandle.c        |  2 +-
 core/Lucy/Test/Store/TestRAMFolder.c            |  2 +-
 core/Lucy/Test/TestSchema.c                     |  4 +--
 core/Lucy/Test/Util/TestFreezer.c               |  2 +-
 core/Lucy/Test/Util/TestIndexFileNames.c        |  2 +-
 core/Lucy/Test/Util/TestJson.c                  |  2 +-
 core/Lucy/Test/Util/TestMemoryPool.c            |  2 +-
 core/Lucy/Test/Util/TestPriorityQueue.c         |  4 +--
 core/Lucy/Test/Util/TestSortExternal.c          |  2 +-
 core/Lucy/Util/BBSortEx.c                       |  2 +-
 core/Lucy/Util/Freezer.c                        | 38 ++++++++++----------
 core/Lucy/Util/MemoryPool.c                     |  2 +-
 core/Lucy/Util/SortExternal.c                   | 10 +++---
 core/Lucy/Util/ToolSet.h                        |  2 +-
 core/LucyX/Search/FilterMatcher.c               |  2 +-
 core/LucyX/Search/MockMatcher.c                 |  2 +-
 core/LucyX/Search/ProximityMatcher.c            |  2 +-
 core/LucyX/Search/ProximityQuery.c              |  6 ++--
 perl/buildlib/Lucy/Build/Binding/Index.pm       |  2 +-
 perl/buildlib/Lucy/Build/Binding/Misc.pm        | 12 +++----
 perl/t/026-serialization.t                      |  4 +--
 perl/xs/Lucy/Document/Doc.c                     |  4 +--
 198 files changed, 381 insertions(+), 382 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/c/src/Lucy/Document/Doc.c
----------------------------------------------------------------------
diff --git a/c/src/Lucy/Document/Doc.c b/c/src/Lucy/Document/Doc.c
index bc6c85b..9c73303 100644
--- a/c/src/Lucy/Document/Doc.c
+++ b/c/src/Lucy/Document/Doc.c
@@ -25,7 +25,7 @@
 #include "Clownfish/String.h"
 #include "Clownfish/Err.h"
 #include "Clownfish/Hash.h"
-#include "Clownfish/VTable.h"
+#include "Clownfish/Class.h"
 #include "Lucy/Store/InStream.h"
 #include "Lucy/Store/OutStream.h"
 #include "Lucy/Util/Freezer.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Analysis/Analyzer.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Analysis/Analyzer.c b/core/Lucy/Analysis/Analyzer.c
index 0e52eb7..281d13b 100644
--- a/core/Lucy/Analysis/Analyzer.c
+++ b/core/Lucy/Analysis/Analyzer.c
@@ -72,8 +72,8 @@ Analyzer_Load_IMP(Analyzer *self, Obj *dump) {
     Hash *source = (Hash*)CERTIFY(dump, HASH);
     String *class_name
         = (String*)CERTIFY(Hash_Fetch_Utf8(source, "_class", 6), STRING);
-    VTable *vtable = VTable_singleton(class_name, NULL);
-    Analyzer *loaded = (Analyzer*)VTable_Make_Obj(vtable);
+    Class *klass = Class_singleton(class_name, NULL);
+    Analyzer *loaded = (Analyzer*)Class_Make_Obj(klass);
     return (Obj*)loaded;
 }
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Analysis/CaseFolder.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Analysis/CaseFolder.c b/core/Lucy/Analysis/CaseFolder.c
index 7003dd9..ca2e293 100644
--- a/core/Lucy/Analysis/CaseFolder.c
+++ b/core/Lucy/Analysis/CaseFolder.c
@@ -23,7 +23,7 @@
 
 CaseFolder*
 CaseFolder_new() {
-    CaseFolder *self = (CaseFolder*)VTable_Make_Obj(CASEFOLDER);
+    CaseFolder *self = (CaseFolder*)Class_Make_Obj(CASEFOLDER);
     return CaseFolder_init(self);
 }
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Analysis/EasyAnalyzer.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Analysis/EasyAnalyzer.c b/core/Lucy/Analysis/EasyAnalyzer.c
index 27413ed..365ea13 100644
--- a/core/Lucy/Analysis/EasyAnalyzer.c
+++ b/core/Lucy/Analysis/EasyAnalyzer.c
@@ -25,7 +25,7 @@
 
 EasyAnalyzer*
 EasyAnalyzer_new(String *language) {
-    EasyAnalyzer *self = (EasyAnalyzer*)VTable_Make_Obj(EASYANALYZER);
+    EasyAnalyzer *self = (EasyAnalyzer*)Class_Make_Obj(EASYANALYZER);
     return EasyAnalyzer_init(self, language);
 }
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Analysis/Inversion.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Analysis/Inversion.c b/core/Lucy/Analysis/Inversion.c
index 4ab1e22..5c34f4c 100644
--- a/core/Lucy/Analysis/Inversion.c
+++ b/core/Lucy/Analysis/Inversion.c
@@ -28,7 +28,7 @@ S_count_clusters(Inversion *self, InversionIVARS *ivars);
 
 Inversion*
 Inversion_new(Token *seed_token) {
-    Inversion *self = (Inversion*)VTable_Make_Obj(INVERSION);
+    Inversion *self = (Inversion*)Class_Make_Obj(INVERSION);
     InversionIVARS *const ivars = Inversion_IVARS(self);
 
     // Init.

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Analysis/Normalizer.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Analysis/Normalizer.c b/core/Lucy/Analysis/Normalizer.c
index 945bfad..9505fa5 100644
--- a/core/Lucy/Analysis/Normalizer.c
+++ b/core/Lucy/Analysis/Normalizer.c
@@ -29,7 +29,7 @@
 
 Normalizer*
 Normalizer_new(String *form, bool case_fold, bool strip_accents) {
-    Normalizer *self = (Normalizer*)VTable_Make_Obj(NORMALIZER);
+    Normalizer *self = (Normalizer*)Class_Make_Obj(NORMALIZER);
     return Normalizer_init(self, form, case_fold, strip_accents);
 }
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Analysis/PolyAnalyzer.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Analysis/PolyAnalyzer.c b/core/Lucy/Analysis/PolyAnalyzer.c
index cdb1bff..9a549d8 100644
--- a/core/Lucy/Analysis/PolyAnalyzer.c
+++ b/core/Lucy/Analysis/PolyAnalyzer.c
@@ -27,7 +27,7 @@
 
 PolyAnalyzer*
 PolyAnalyzer_new(String *language, VArray *analyzers) {
-    PolyAnalyzer *self = (PolyAnalyzer*)VTable_Make_Obj(POLYANALYZER);
+    PolyAnalyzer *self = (PolyAnalyzer*)Class_Make_Obj(POLYANALYZER);
     return PolyAnalyzer_init(self, language, analyzers);
 }
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Analysis/RegexTokenizer.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Analysis/RegexTokenizer.c b/core/Lucy/Analysis/RegexTokenizer.c
index 2859c9f..40a0177 100644
--- a/core/Lucy/Analysis/RegexTokenizer.c
+++ b/core/Lucy/Analysis/RegexTokenizer.c
@@ -24,7 +24,7 @@
 
 RegexTokenizer*
 RegexTokenizer_new(String *pattern) {
-    RegexTokenizer *self = (RegexTokenizer*)VTable_Make_Obj(REGEXTOKENIZER);
+    RegexTokenizer *self = (RegexTokenizer*)Class_Make_Obj(REGEXTOKENIZER);
     return RegexTokenizer_init(self, pattern);
 }
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Analysis/SnowballStemmer.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Analysis/SnowballStemmer.c b/core/Lucy/Analysis/SnowballStemmer.c
index 2266515..b2df057 100644
--- a/core/Lucy/Analysis/SnowballStemmer.c
+++ b/core/Lucy/Analysis/SnowballStemmer.c
@@ -27,7 +27,7 @@
 
 SnowballStemmer*
 SnowStemmer_new(String *language) {
-    SnowballStemmer *self = (SnowballStemmer*)VTable_Make_Obj(SNOWBALLSTEMMER);
+    SnowballStemmer *self = (SnowballStemmer*)Class_Make_Obj(SNOWBALLSTEMMER);
     return SnowStemmer_init(self, language);
 }
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Analysis/SnowballStopFilter.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Analysis/SnowballStopFilter.c b/core/Lucy/Analysis/SnowballStopFilter.c
index 4e4c998..a35de42 100644
--- a/core/Lucy/Analysis/SnowballStopFilter.c
+++ b/core/Lucy/Analysis/SnowballStopFilter.c
@@ -26,7 +26,7 @@
 
 SnowballStopFilter*
 SnowStop_new(String *language, Hash *stoplist) {
-    SnowballStopFilter *self = (SnowballStopFilter*)VTable_Make_Obj(SNOWBALLSTOPFILTER);
+    SnowballStopFilter *self = (SnowballStopFilter*)Class_Make_Obj(SNOWBALLSTOPFILTER);
     return SnowStop_init(self, language, stoplist);
 }
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Analysis/StandardTokenizer.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Analysis/StandardTokenizer.c b/core/Lucy/Analysis/StandardTokenizer.c
index d5f4521..318dcd7 100644
--- a/core/Lucy/Analysis/StandardTokenizer.c
+++ b/core/Lucy/Analysis/StandardTokenizer.c
@@ -73,7 +73,7 @@ S_skip_extend_format(const char *text, size_t len, lucy_StringIter *iter);
 
 StandardTokenizer*
 StandardTokenizer_new() {
-    StandardTokenizer *self = (StandardTokenizer*)VTable_Make_Obj(STANDARDTOKENIZER);
+    StandardTokenizer *self = (StandardTokenizer*)Class_Make_Obj(STANDARDTOKENIZER);
     return StandardTokenizer_init(self);
 }
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Analysis/Token.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Analysis/Token.c b/core/Lucy/Analysis/Token.c
index a59f3aa..eba4714 100644
--- a/core/Lucy/Analysis/Token.c
+++ b/core/Lucy/Analysis/Token.c
@@ -22,7 +22,7 @@
 Token*
 Token_new(const char* text, size_t len, uint32_t start_offset,
           uint32_t end_offset, float boost, int32_t pos_inc) {
-    Token *self = (Token*)VTable_Make_Obj(TOKEN);
+    Token *self = (Token*)Class_Make_Obj(TOKEN);
     return Token_init(self, text, len, start_offset, end_offset, boost,
                       pos_inc);
 }

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Document/Doc.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Document/Doc.c b/core/Lucy/Document/Doc.c
index 157051c..5006ada 100644
--- a/core/Lucy/Document/Doc.c
+++ b/core/Lucy/Document/Doc.c
@@ -21,7 +21,7 @@
 
 Doc*
 Doc_new(void *fields, int32_t doc_id) {
-    Doc *self = (Doc*)VTable_Make_Obj(DOC);
+    Doc *self = (Doc*)Class_Make_Obj(DOC);
     return Doc_init(self, fields, doc_id);
 }
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Document/HitDoc.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Document/HitDoc.c b/core/Lucy/Document/HitDoc.c
index 2abcbbc..391b931 100644
--- a/core/Lucy/Document/HitDoc.c
+++ b/core/Lucy/Document/HitDoc.c
@@ -23,7 +23,7 @@
 
 HitDoc*
 HitDoc_new(void *fields, int32_t doc_id, float score) {
-    HitDoc *self = (HitDoc*)VTable_Make_Obj(HITDOC);
+    HitDoc *self = (HitDoc*)Class_Make_Obj(HITDOC);
     return HitDoc_init(self, fields, doc_id, score);
 }
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Highlight/HeatMap.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Highlight/HeatMap.c b/core/Lucy/Highlight/HeatMap.c
index 92695ac..439f196 100644
--- a/core/Lucy/Highlight/HeatMap.c
+++ b/core/Lucy/Highlight/HeatMap.c
@@ -23,7 +23,7 @@
 
 HeatMap*
 HeatMap_new(VArray *spans, uint32_t window) {
-    HeatMap *self = (HeatMap*)VTable_Make_Obj(HEATMAP);
+    HeatMap *self = (HeatMap*)Class_Make_Obj(HEATMAP);
     return HeatMap_init(self, spans, window);
 }
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Highlight/Highlighter.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Highlight/Highlighter.c b/core/Lucy/Highlight/Highlighter.c
index 9e1eb7e..915aa7c 100644
--- a/core/Lucy/Highlight/Highlighter.c
+++ b/core/Lucy/Highlight/Highlighter.c
@@ -47,7 +47,7 @@ S_encode_entities(String *text, CharBuf *encoded);
 Highlighter*
 Highlighter_new(Searcher *searcher, Obj *query, String *field,
                 uint32_t excerpt_length) {
-    Highlighter *self = (Highlighter*)VTable_Make_Obj(HIGHLIGHTER);
+    Highlighter *self = (Highlighter*)Class_Make_Obj(HIGHLIGHTER);
     return Highlighter_init(self, searcher, query, field, excerpt_length);
 }
 
@@ -565,9 +565,9 @@ Highlighter_Encode_IMP(Highlighter *self, String *text) {
 
 static String*
 S_do_encode(Highlighter *self, String *text, CharBuf **encode_buf) {
-    VTable *vtable = Highlighter_Get_VTable(self);
+    Class *klass = Highlighter_Get_Class(self);
     Highlighter_Encode_t my_meth
-        = (Highlighter_Encode_t)METHOD_PTR(vtable, LUCY_Highlighter_Encode);
+        = (Highlighter_Encode_t)METHOD_PTR(klass, LUCY_Highlighter_Encode);
     Highlighter_Encode_t orig_meth
         = (Highlighter_Encode_t)METHOD_PTR(HIGHLIGHTER, LUCY_Highlighter_Encode);
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Index/BackgroundMerger.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/BackgroundMerger.c b/core/Lucy/Index/BackgroundMerger.c
index 547a5f9..cfbdfc7 100644
--- a/core/Lucy/Index/BackgroundMerger.c
+++ b/core/Lucy/Index/BackgroundMerger.c
@@ -60,7 +60,7 @@ S_release_merge_lock(BackgroundMerger *self);
 BackgroundMerger*
 BGMerger_new(Obj *index, IndexManager *manager) {
     BackgroundMerger *self
-        = (BackgroundMerger*)VTable_Make_Obj(BACKGROUNDMERGER);
+        = (BackgroundMerger*)Class_Make_Obj(BACKGROUNDMERGER);
     return BGMerger_init(self, index, manager);
 }
 
@@ -283,7 +283,7 @@ S_merge_updated_deletions(BackgroundMerger *self) {
                 DeletionsReader *del_reader
                     = (DeletionsReader*)SegReader_Obtain(
                           new_seg_reader,
-                          VTable_Get_Name(DELETIONSREADER));
+                          Class_Get_Name(DELETIONSREADER));
                 if (!updated_deletions) {
                     updated_deletions = Hash_new(max);
                 }

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Index/BitVecDelDocs.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/BitVecDelDocs.c b/core/Lucy/Index/BitVecDelDocs.c
index 80b1343..24b49a0 100644
--- a/core/Lucy/Index/BitVecDelDocs.c
+++ b/core/Lucy/Index/BitVecDelDocs.c
@@ -23,7 +23,7 @@
 
 BitVecDelDocs*
 BitVecDelDocs_new(Folder *folder, String *filename) {
-    BitVecDelDocs *self = (BitVecDelDocs*)VTable_Make_Obj(BITVECDELDOCS);
+    BitVecDelDocs *self = (BitVecDelDocs*)Class_Make_Obj(BITVECDELDOCS);
     return BitVecDelDocs_init(self, folder, filename);
 }
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Index/DeletionsReader.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/DeletionsReader.c b/core/Lucy/Index/DeletionsReader.c
index bb5e49d..8c5beff 100644
--- a/core/Lucy/Index/DeletionsReader.c
+++ b/core/Lucy/Index/DeletionsReader.c
@@ -50,7 +50,7 @@ DelReader_Aggregator_IMP(DeletionsReader *self, VArray *readers,
 PolyDeletionsReader*
 PolyDelReader_new(VArray *readers, I32Array *offsets) {
     PolyDeletionsReader *self
-        = (PolyDeletionsReader*)VTable_Make_Obj(POLYDELETIONSREADER);
+        = (PolyDeletionsReader*)Class_Make_Obj(POLYDELETIONSREADER);
     return PolyDelReader_init(self, readers, offsets);
 }
 
@@ -119,7 +119,7 @@ DefaultDeletionsReader*
 DefDelReader_new(Schema *schema, Folder *folder, Snapshot *snapshot,
                  VArray *segments, int32_t seg_tick) {
     DefaultDeletionsReader *self
-        = (DefaultDeletionsReader*)VTable_Make_Obj(DEFAULTDELETIONSREADER);
+        = (DefaultDeletionsReader*)Class_Make_Obj(DEFAULTDELETIONSREADER);
     return DefDelReader_init(self, schema, folder, snapshot, segments,
                              seg_tick);
 }

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Index/DeletionsWriter.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/DeletionsWriter.c b/core/Lucy/Index/DeletionsWriter.c
index 5d9ee5b..fcd791f 100644
--- a/core/Lucy/Index/DeletionsWriter.c
+++ b/core/Lucy/Index/DeletionsWriter.c
@@ -72,7 +72,7 @@ DefaultDeletionsWriter*
 DefDelWriter_new(Schema *schema, Snapshot *snapshot, Segment *segment,
                  PolyReader *polyreader) {
     DefaultDeletionsWriter *self
-        = (DefaultDeletionsWriter*)VTable_Make_Obj(DEFAULTDELETIONSWRITER);
+        = (DefaultDeletionsWriter*)Class_Make_Obj(DEFAULTDELETIONSWRITER);
     return DefDelWriter_init(self, schema, snapshot, segment, polyreader);
 }
 
@@ -97,7 +97,7 @@ DefDelWriter_init(DefaultDeletionsWriter *self, Schema *schema,
         BitVector *bit_vec    = BitVec_new(SegReader_Doc_Max(seg_reader));
         DeletionsReader *del_reader
             = (DeletionsReader*)SegReader_Fetch(
-                  seg_reader, VTable_Get_Name(DELETIONSREADER));
+                  seg_reader, Class_Get_Name(DELETIONSREADER));
         Matcher *seg_dels = del_reader
                             ? DelReader_Iterator(del_reader)
                             : NULL;
@@ -222,7 +222,7 @@ DefDelWriter_Seg_Deletions_IMP(DefaultDeletionsWriter *self,
     if (tick_obj) {
         DeletionsReader *del_reader
             = (DeletionsReader*)SegReader_Obtain(
-                  candidate, VTable_Get_Name(DELETIONSREADER));
+                  candidate, Class_Get_Name(DELETIONSREADER));
         if (ivars->updated[tick] || DelReader_Del_Count(del_reader)) {
             BitVector *deldocs = (BitVector*)VA_Fetch(ivars->bit_vecs, tick);
             deletions = (Matcher*)BitVecMatcher_new(deldocs);
@@ -255,7 +255,7 @@ DefDelWriter_Delete_By_Term_IMP(DefaultDeletionsWriter *self,
         SegReader *seg_reader = (SegReader*)VA_Fetch(ivars->seg_readers, i);
         PostingListReader *plist_reader
             = (PostingListReader*)SegReader_Fetch(
-                  seg_reader, VTable_Get_Name(POSTINGLISTREADER));
+                  seg_reader, Class_Get_Name(POSTINGLISTREADER));
         BitVector *bit_vec = (BitVector*)VA_Fetch(ivars->bit_vecs, i);
         PostingList *plist = plist_reader
                              ? PListReader_Posting_List(plist_reader, field, term)
@@ -373,7 +373,7 @@ DefDelWriter_Merge_Segment_IMP(DefaultDeletionsWriter *self,
                         int32_t count = (int32_t)Obj_To_I64(Hash_Fetch_Utf8(mini_meta, "count", 5));
                         DeletionsReader *del_reader
                             = (DeletionsReader*)SegReader_Obtain(
-                                  candidate, VTable_Get_Name(DELETIONSREADER));
+                                  candidate, Class_Get_Name(DELETIONSREADER));
                         if (count == DelReader_Del_Count(del_reader)) {
                             ivars->updated[i] = true;
                         }

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Index/DocReader.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/DocReader.c b/core/Lucy/Index/DocReader.c
index 30f8dba..76b9c64 100644
--- a/core/Lucy/Index/DocReader.c
+++ b/core/Lucy/Index/DocReader.c
@@ -45,7 +45,7 @@ DocReader_Aggregator_IMP(DocReader *self, VArray *readers,
 
 PolyDocReader*
 PolyDocReader_new(VArray *readers, I32Array *offsets) {
-    PolyDocReader *self = (PolyDocReader*)VTable_Make_Obj(POLYDOCREADER);
+    PolyDocReader *self = (PolyDocReader*)Class_Make_Obj(POLYDOCREADER);
     return PolyDocReader_init(self, readers, offsets);
 }
 
@@ -102,7 +102,7 @@ DefaultDocReader*
 DefDocReader_new(Schema *schema, Folder *folder, Snapshot *snapshot,
                  VArray *segments, int32_t seg_tick) {
     DefaultDocReader *self
-        = (DefaultDocReader*)VTable_Make_Obj(DEFAULTDOCREADER);
+        = (DefaultDocReader*)Class_Make_Obj(DEFAULTDOCREADER);
     return DefDocReader_init(self, schema, folder, snapshot, segments,
                              seg_tick);
 }

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Index/DocVector.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/DocVector.c b/core/Lucy/Index/DocVector.c
index 6529a3e..daeba31 100644
--- a/core/Lucy/Index/DocVector.c
+++ b/core/Lucy/Index/DocVector.c
@@ -37,7 +37,7 @@ S_extract_tv_from_tv_buf(String *field, String *term_text,
 
 DocVector*
 DocVec_new() {
-    DocVector *self = (DocVector*)VTable_Make_Obj(DOCVECTOR);
+    DocVector *self = (DocVector*)Class_Make_Obj(DOCVECTOR);
     return DocVec_init(self);
 }
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Index/DocWriter.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/DocWriter.c b/core/Lucy/Index/DocWriter.c
index d1e316e..cb4e7ef 100644
--- a/core/Lucy/Index/DocWriter.c
+++ b/core/Lucy/Index/DocWriter.c
@@ -39,7 +39,7 @@ int32_t DocWriter_current_file_format = 2;
 DocWriter*
 DocWriter_new(Schema *schema, Snapshot *snapshot, Segment *segment,
               PolyReader *polyreader) {
-    DocWriter *self = (DocWriter*)VTable_Make_Obj(DOCWRITER);
+    DocWriter *self = (DocWriter*)Class_Make_Obj(DOCWRITER);
     return DocWriter_init(self, schema, snapshot, segment, polyreader);
 }
 
@@ -174,7 +174,7 @@ DocWriter_Add_Segment_IMP(DocWriter *self, SegReader *reader,
         ByteBuf   *const buffer  = BB_new(0);
         DefaultDocReader *const doc_reader
             = (DefaultDocReader*)CERTIFY(
-                  SegReader_Obtain(reader, VTable_Get_Name(DOCREADER)),
+                  SegReader_Obtain(reader, Class_Get_Name(DOCREADER)),
                   DEFAULTDOCREADER);
 
         for (int32_t i = 1, max = SegReader_Doc_Max(reader); i <= max; i++) {

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Index/FilePurger.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/FilePurger.c b/core/Lucy/Index/FilePurger.c
index bdb0999..c283d5e 100644
--- a/core/Lucy/Index/FilePurger.c
+++ b/core/Lucy/Index/FilePurger.c
@@ -43,7 +43,7 @@ S_find_all_referenced(Folder *folder, VArray *entries);
 
 FilePurger*
 FilePurger_new(Folder *folder, Snapshot *snapshot, IndexManager *manager) {
-    FilePurger *self = (FilePurger*)VTable_Make_Obj(FILEPURGER);
+    FilePurger *self = (FilePurger*)Class_Make_Obj(FILEPURGER);
     return FilePurger_init(self, folder, snapshot, manager);
 }
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Index/HighlightReader.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/HighlightReader.c b/core/Lucy/Index/HighlightReader.c
index af2c269..8d6316c 100644
--- a/core/Lucy/Index/HighlightReader.c
+++ b/core/Lucy/Index/HighlightReader.c
@@ -50,7 +50,7 @@ HLReader_Aggregator_IMP(HighlightReader *self, VArray *readers,
 PolyHighlightReader*
 PolyHLReader_new(VArray *readers, I32Array *offsets) {
     PolyHighlightReader *self
-        = (PolyHighlightReader*)VTable_Make_Obj(POLYHIGHLIGHTREADER);
+        = (PolyHighlightReader*)Class_Make_Obj(POLYHIGHLIGHTREADER);
     return PolyHLReader_init(self, readers, offsets);
 }
 
@@ -105,7 +105,7 @@ PolyHLReader_Fetch_Doc_Vec_IMP(PolyHighlightReader *self, int32_t doc_id) {
 DefaultHighlightReader*
 DefHLReader_new(Schema *schema, Folder *folder, Snapshot *snapshot,
                 VArray *segments, int32_t seg_tick) {
-    DefaultHighlightReader *self = (DefaultHighlightReader*)VTable_Make_Obj(
+    DefaultHighlightReader *self = (DefaultHighlightReader*)Class_Make_Obj(
                                        DEFAULTHIGHLIGHTREADER);
     return DefHLReader_init(self, schema, folder, snapshot, segments,
                             seg_tick);

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Index/HighlightWriter.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/HighlightWriter.c b/core/Lucy/Index/HighlightWriter.c
index e259a61..501d522 100644
--- a/core/Lucy/Index/HighlightWriter.c
+++ b/core/Lucy/Index/HighlightWriter.c
@@ -46,7 +46,7 @@ HighlightWriter*
 HLWriter_new(Schema *schema, Snapshot *snapshot, Segment *segment,
              PolyReader *polyreader) {
     HighlightWriter *self
-        = (HighlightWriter*)VTable_Make_Obj(HIGHLIGHTWRITER);
+        = (HighlightWriter*)Class_Make_Obj(HIGHLIGHTWRITER);
     return HLWriter_init(self, schema, snapshot, segment, polyreader);
 }
 
@@ -221,7 +221,7 @@ HLWriter_Add_Segment_IMP(HighlightWriter *self, SegReader *reader,
     else {
         DefaultHighlightReader *hl_reader
             = (DefaultHighlightReader*)CERTIFY(
-                  SegReader_Obtain(reader, VTable_Get_Name(HIGHLIGHTREADER)),
+                  SegReader_Obtain(reader, Class_Get_Name(HIGHLIGHTREADER)),
                   DEFAULTHIGHLIGHTREADER);
         OutStream *dat_out = S_lazy_init(self);
         OutStream *ix_out  = ivars->ix_out;

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Index/IndexManager.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/IndexManager.c b/core/Lucy/Index/IndexManager.c
index 40f922a..5f08a7f 100644
--- a/core/Lucy/Index/IndexManager.c
+++ b/core/Lucy/Index/IndexManager.c
@@ -33,7 +33,7 @@
 
 IndexManager*
 IxManager_new(String *host, LockFactory *lock_factory) {
-    IndexManager *self = (IndexManager*)VTable_Make_Obj(INDEXMANAGER);
+    IndexManager *self = (IndexManager*)Class_Make_Obj(INDEXMANAGER);
     return IxManager_init(self, host, lock_factory);
 }
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Index/Indexer.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/Indexer.c b/core/Lucy/Index/Indexer.c
index 7ef8ae2..7db0001 100644
--- a/core/Lucy/Index/Indexer.c
+++ b/core/Lucy/Index/Indexer.c
@@ -64,7 +64,7 @@ S_find_schema_file(Snapshot *snapshot);
 
 Indexer*
 Indexer_new(Schema *schema, Obj *index, IndexManager *manager, int32_t flags) {
-    Indexer *self = (Indexer*)VTable_Make_Obj(INDEXER);
+    Indexer *self = (Indexer*)Class_Make_Obj(INDEXER);
     return Indexer_init(self, schema, index, manager, flags);
 }
 
@@ -354,7 +354,7 @@ Indexer_Add_Index_IMP(Indexer *self, Obj *index) {
             SegReader *seg_reader = (SegReader*)VA_Fetch(seg_readers, i);
             DeletionsReader *del_reader
                 = (DeletionsReader*)SegReader_Fetch(
-                      seg_reader, VTable_Get_Name(DELETIONSREADER));
+                      seg_reader, Class_Get_Name(DELETIONSREADER));
             Matcher *deletions = del_reader
                                  ? DelReader_Iterator(del_reader)
                                  : NULL;

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Index/Inverter.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/Inverter.c b/core/Lucy/Index/Inverter.c
index 6ab0a74..60eff3f 100644
--- a/core/Lucy/Index/Inverter.c
+++ b/core/Lucy/Index/Inverter.c
@@ -34,7 +34,7 @@
 
 Inverter*
 Inverter_new(Schema *schema, Segment *segment) {
-    Inverter *self = (Inverter*)VTable_Make_Obj(INVERTER);
+    Inverter *self = (Inverter*)Class_Make_Obj(INVERTER);
     return Inverter_init(self, schema, segment);
 }
 
@@ -193,7 +193,7 @@ Inverter_Clear_IMP(Inverter *self) {
 
 InverterEntry*
 InvEntry_new(Schema *schema, String *field, int32_t field_num) {
-    InverterEntry *self = (InverterEntry*)VTable_Make_Obj(INVERTERENTRY);
+    InverterEntry *self = (InverterEntry*)Class_Make_Obj(INVERTERENTRY);
     return InvEntry_init(self, schema, field, field_num);
 }
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Index/LexIndex.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/LexIndex.c b/core/Lucy/Index/LexIndex.c
index 9b7905f..d1b4b16 100644
--- a/core/Lucy/Index/LexIndex.c
+++ b/core/Lucy/Index/LexIndex.c
@@ -34,7 +34,7 @@ S_read_entry(LexIndex *self);
 LexIndex*
 LexIndex_new(Schema *schema, Folder *folder, Segment *segment,
              String *field) {
-    LexIndex *self = (LexIndex*)VTable_Make_Obj(LEXINDEX);
+    LexIndex *self = (LexIndex*)Class_Make_Obj(LEXINDEX);
     return LexIndex_init(self, schema, folder, segment, field);
 }
 
@@ -155,11 +155,11 @@ LexIndex_Seek_IMP(LexIndex *self, Obj *target) {
     else {
         if (!Obj_Is_A(target, STRING)) {
             THROW(ERR, "Target is a %o, and not comparable to a %o",
-                  Obj_Get_Class_Name(target), VTable_Get_Name(STRING));
+                  Obj_Get_Class_Name(target), Class_Get_Name(STRING));
         }
         /* TODO:
         Obj *first_obj = VA_Fetch(terms, 0);
-        if (!Obj_Is_A(target, Obj_Get_VTable(first_obj))) {
+        if (!Obj_Is_A(target, Obj_Get_Class(first_obj))) {
             THROW(ERR, "Target is a %o, and not comparable to a %o",
                 Obj_Get_Class_Name(target), Obj_Get_Class_Name(first_obj));
         }

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Index/LexiconReader.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/LexiconReader.c b/core/Lucy/Index/LexiconReader.c
index a732291..fd8392a 100644
--- a/core/Lucy/Index/LexiconReader.c
+++ b/core/Lucy/Index/LexiconReader.c
@@ -48,7 +48,7 @@ LexReader_Aggregator_IMP(LexiconReader *self, VArray *readers,
 PolyLexiconReader*
 PolyLexReader_new(VArray *readers, I32Array *offsets) {
     PolyLexiconReader *self
-        = (PolyLexiconReader*)VTable_Make_Obj(POLYLEXICONREADER);
+        = (PolyLexiconReader*)Class_Make_Obj(POLYLEXICONREADER);
     return PolyLexReader_init(self, readers, offsets);
 }
 
@@ -129,7 +129,7 @@ DefaultLexiconReader*
 DefLexReader_new(Schema *schema, Folder *folder, Snapshot *snapshot,
                  VArray *segments, int32_t seg_tick) {
     DefaultLexiconReader *self
-        = (DefaultLexiconReader*)VTable_Make_Obj(DEFAULTLEXICONREADER);
+        = (DefaultLexiconReader*)Class_Make_Obj(DEFAULTLEXICONREADER);
     return DefLexReader_init(self, schema, folder, snapshot, segments,
                              seg_tick);
 }

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Index/LexiconWriter.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/LexiconWriter.c b/core/Lucy/Index/LexiconWriter.c
index a0dc149..f74776f 100644
--- a/core/Lucy/Index/LexiconWriter.c
+++ b/core/Lucy/Index/LexiconWriter.c
@@ -37,7 +37,7 @@ int32_t LexWriter_current_file_format = 3;
 LexiconWriter*
 LexWriter_new(Schema *schema, Snapshot *snapshot, Segment *segment,
               PolyReader *polyreader) {
-    LexiconWriter *self = (LexiconWriter*)VTable_Make_Obj(LEXICONWRITER);
+    LexiconWriter *self = (LexiconWriter*)Class_Make_Obj(LEXICONWRITER);
     return LexWriter_init(self, schema, snapshot, segment, polyreader);
 }
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Index/PolyLexicon.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/PolyLexicon.c b/core/Lucy/Index/PolyLexicon.c
index cf57189..d8572bb 100644
--- a/core/Lucy/Index/PolyLexicon.c
+++ b/core/Lucy/Index/PolyLexicon.c
@@ -30,7 +30,7 @@ S_refresh_lex_q(SegLexQueue *lex_q, VArray *seg_lexicons, Obj *target);
 
 PolyLexicon*
 PolyLex_new(String *field, VArray *sub_readers) {
-    PolyLexicon *self = (PolyLexicon*)VTable_Make_Obj(POLYLEXICON);
+    PolyLexicon *self = (PolyLexicon*)Class_Make_Obj(POLYLEXICON);
     return PolyLex_init(self, field, sub_readers);
 }
 
@@ -197,7 +197,7 @@ PolyLex_Get_Num_Seg_Lexicons_IMP(PolyLexicon *self) {
 
 SegLexQueue*
 SegLexQ_new(uint32_t max_size) {
-    SegLexQueue *self = (SegLexQueue*)VTable_Make_Obj(SEGLEXQUEUE);
+    SegLexQueue *self = (SegLexQueue*)Class_Make_Obj(SEGLEXQUEUE);
     return (SegLexQueue*)PriQ_init((PriorityQueue*)self, max_size);
 }
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Index/PolyReader.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/PolyReader.c b/core/Lucy/Index/PolyReader.c
index c9c4890..023035e 100644
--- a/core/Lucy/Index/PolyReader.c
+++ b/core/Lucy/Index/PolyReader.c
@@ -79,14 +79,14 @@ S_derive_folder(Obj *index);
 PolyReader*
 PolyReader_new(Schema *schema, Folder *folder, Snapshot *snapshot,
                IndexManager *manager, VArray *sub_readers) {
-    PolyReader *self = (PolyReader*)VTable_Make_Obj(POLYREADER);
+    PolyReader *self = (PolyReader*)Class_Make_Obj(POLYREADER);
     return PolyReader_init(self, schema, folder, snapshot, manager,
                            sub_readers);
 }
 
 PolyReader*
 PolyReader_open(Obj *index, Snapshot *snapshot, IndexManager *manager) {
-    PolyReader *self = (PolyReader*)VTable_Make_Obj(POLYREADER);
+    PolyReader *self = (PolyReader*)Class_Make_Obj(POLYREADER);
     return PolyReader_do_open(self, index, snapshot, manager);
 }
 
@@ -148,7 +148,7 @@ S_init_sub_readers(PolyReader *self, VArray *sub_readers) {
 
     DeletionsReader *del_reader
         = (DeletionsReader*)Hash_Fetch(
-              ivars->components, (Obj*)VTable_Get_Name(DELETIONSREADER));
+              ivars->components, (Obj*)Class_Get_Name(DELETIONSREADER));
     ivars->del_count = del_reader ? DelReader_Del_Count(del_reader) : 0;
 }
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Index/Posting/MatchPosting.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/Posting/MatchPosting.c b/core/Lucy/Index/Posting/MatchPosting.c
index 800d684..c0ead4e 100644
--- a/core/Lucy/Index/Posting/MatchPosting.c
+++ b/core/Lucy/Index/Posting/MatchPosting.c
@@ -50,7 +50,7 @@
 
 MatchPosting*
 MatchPost_new(Similarity *sim) {
-    MatchPosting *self = (MatchPosting*)VTable_Make_Obj(MATCHPOSTING);
+    MatchPosting *self = (MatchPosting*)Class_Make_Obj(MATCHPOSTING);
     return MatchPost_init(self, sim);
 }
 
@@ -106,7 +106,7 @@ MatchPost_Read_Raw_IMP(MatchPosting *self, InStream *instream,
     const uint32_t    freq      = (doc_code & 1)
                                   ? 1
                                   : InStream_Read_C32(instream);
-    const size_t base_size = VTable_Get_Obj_Alloc_Size(RAWPOSTING);
+    const size_t base_size = Class_Get_Obj_Alloc_Size(RAWPOSTING);
     size_t raw_post_bytes  = MAX_RAW_POSTING_LEN(base_size, text_size);
     void *const allocation = MemPool_Grab(mem_pool, raw_post_bytes);
     UNUSED_VAR(self);
@@ -121,7 +121,7 @@ MatchPost_Add_Inversion_To_Pool_IMP(MatchPosting *self,
                                     int32_t doc_id, float doc_boost,
                                     float length_norm) {
     MemoryPool  *mem_pool = PostPool_Get_Mem_Pool(post_pool);
-    const size_t base_size = VTable_Get_Obj_Alloc_Size(RAWPOSTING);
+    const size_t base_size = Class_Get_Obj_Alloc_Size(RAWPOSTING);
     Token      **tokens;
     uint32_t     freq;
 
@@ -147,7 +147,7 @@ MatchPost_Make_Matcher_IMP(MatchPosting *self, Similarity *sim,
                            PostingList *plist, Compiler *compiler,
                            bool need_score) {
     MatchPostingMatcher *matcher
-        = (MatchPostingMatcher*)VTable_Make_Obj(MATCHPOSTINGMATCHER);
+        = (MatchPostingMatcher*)Class_Make_Obj(MATCHPOSTINGMATCHER);
     UNUSED_VAR(self);
     UNUSED_VAR(need_score);
     return MatchPostMatcher_init(matcher, sim, plist, compiler);
@@ -173,7 +173,7 @@ MatchPostingWriter*
 MatchPostWriter_new(Schema *schema, Snapshot *snapshot, Segment *segment,
                     PolyReader *polyreader, int32_t field_num) {
     MatchPostingWriter *self
-        = (MatchPostingWriter*)VTable_Make_Obj(MATCHPOSTINGWRITER);
+        = (MatchPostingWriter*)Class_Make_Obj(MATCHPOSTINGWRITER);
     return MatchPostWriter_init(self, schema, snapshot, segment, polyreader,
                                 field_num);
 }
@@ -243,7 +243,7 @@ MatchPostWriter_Update_Skip_Info_IMP(MatchPostingWriter *self, TermInfo *tinfo)
 MatchTermInfoStepper*
 MatchTInfoStepper_new(Schema *schema) {
     MatchTermInfoStepper *self
-        = (MatchTermInfoStepper*)VTable_Make_Obj(MATCHTERMINFOSTEPPER);
+        = (MatchTermInfoStepper*)Class_Make_Obj(MATCHTERMINFOSTEPPER);
     return MatchTInfoStepper_init(self, schema);
 }
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Index/Posting/RawPosting.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/Posting/RawPosting.c b/core/Lucy/Index/Posting/RawPosting.c
index d02cae2..4c9a234 100644
--- a/core/Lucy/Index/Posting/RawPosting.c
+++ b/core/Lucy/Index/Posting/RawPosting.c
@@ -34,7 +34,7 @@ RawPosting*
 RawPost_new(void *pre_allocated_memory, int32_t doc_id, uint32_t freq,
             const char *term_text, size_t term_text_len) {
     RawPosting *self
-        = (RawPosting*)VTable_Init_Obj(RAWPOSTING, pre_allocated_memory);
+        = (RawPosting*)Class_Init_Obj(RAWPOSTING, pre_allocated_memory);
     RawPostingIVARS *const ivars = RawPost_IVARS(self);
     ivars->doc_id      = doc_id;
     ivars->freq        = freq;
@@ -96,7 +96,7 @@ RawPostingWriter*
 RawPostWriter_new(Schema *schema, Snapshot *snapshot, Segment *segment,
                   PolyReader *polyreader, OutStream *outstream) {
     RawPostingWriter *self
-        = (RawPostingWriter*)VTable_Make_Obj(RAWPOSTINGWRITER);
+        = (RawPostingWriter*)Class_Make_Obj(RAWPOSTINGWRITER);
     return RawPostWriter_init(self, schema, snapshot, segment, polyreader,
                               outstream);
 }

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Index/Posting/RichPosting.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/Posting/RichPosting.c b/core/Lucy/Index/Posting/RichPosting.c
index 8bcc423..a008514 100644
--- a/core/Lucy/Index/Posting/RichPosting.c
+++ b/core/Lucy/Index/Posting/RichPosting.c
@@ -43,7 +43,7 @@
 
 RichPosting*
 RichPost_new(Similarity *sim) {
-    RichPosting *self = (RichPosting*)VTable_Make_Obj(RICHPOSTING);
+    RichPosting *self = (RichPosting*)Class_Make_Obj(RICHPOSTING);
     return RichPost_init(self, sim);
 }
 
@@ -113,7 +113,7 @@ RichPost_Add_Inversion_To_Pool_IMP(RichPosting *self, PostingPool *post_pool,
     MemoryPool *mem_pool = PostPool_Get_Mem_Pool(post_pool);
     Similarity *sim = ivars->sim;
     float       field_boost = doc_boost * FType_Get_Boost(type) * length_norm;
-    const size_t base_size = VTable_Get_Obj_Alloc_Size(RAWPOSTING);
+    const size_t base_size = Class_Get_Obj_Alloc_Size(RAWPOSTING);
     Token     **tokens;
     uint32_t    freq;
 
@@ -163,7 +163,7 @@ RichPost_Read_Raw_IMP(RichPosting *self, InStream *instream,
     const uint32_t    freq      = (doc_code & 1)
                                   ? 1
                                   : InStream_Read_C32(instream);
-    const size_t base_size = VTable_Get_Obj_Alloc_Size(RAWPOSTING);
+    const size_t base_size = Class_Get_Obj_Alloc_Size(RAWPOSTING);
     size_t raw_post_bytes  = MAX_RAW_POSTING_LEN(base_size, text_size, freq);
     void *const allocation = MemPool_Grab(mem_pool, raw_post_bytes);
     RawPosting *const raw_posting
@@ -194,7 +194,7 @@ RichPost_Make_Matcher_IMP(RichPosting *self, Similarity *sim,
                           PostingList *plist, Compiler *compiler,
                           bool need_score) {
     RichPostingMatcher* matcher
-        = (RichPostingMatcher*)VTable_Make_Obj(RICHPOSTINGMATCHER);
+        = (RichPostingMatcher*)Class_Make_Obj(RICHPOSTINGMATCHER);
     UNUSED_VAR(self);
     UNUSED_VAR(need_score);
     return RichPostMatcher_init(matcher, sim, plist, compiler);

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Index/Posting/ScorePosting.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/Posting/ScorePosting.c b/core/Lucy/Index/Posting/ScorePosting.c
index f5aa961..f812c5b 100644
--- a/core/Lucy/Index/Posting/ScorePosting.c
+++ b/core/Lucy/Index/Posting/ScorePosting.c
@@ -45,7 +45,7 @@
 
 ScorePosting*
 ScorePost_new(Similarity *sim) {
-    ScorePosting *self = (ScorePosting*)VTable_Make_Obj(SCOREPOSTING);
+    ScorePosting *self = (ScorePosting*)Class_Make_Obj(SCOREPOSTING);
     return ScorePost_init(self, sim);
 }
 
@@ -84,7 +84,7 @@ ScorePost_Add_Inversion_To_Pool_IMP(ScorePosting *self,
     Similarity     *sim = ivars->sim;
     float           field_boost = doc_boost * FType_Get_Boost(type) * length_norm;
     const uint8_t   field_boost_byte  = Sim_Encode_Norm(sim, field_boost);
-    const size_t    base_size = VTable_Get_Obj_Alloc_Size(RAWPOSTING);
+    const size_t    base_size = Class_Get_Obj_Alloc_Size(RAWPOSTING);
     Token         **tokens;
     uint32_t        freq;
 
@@ -182,7 +182,7 @@ ScorePost_Read_Raw_IMP(ScorePosting *self, InStream *instream,
     const uint32_t    freq      = (doc_code & 1)
                                   ? 1
                                   : InStream_Read_C32(instream);
-    const size_t base_size = VTable_Get_Obj_Alloc_Size(RAWPOSTING);
+    const size_t base_size = Class_Get_Obj_Alloc_Size(RAWPOSTING);
     size_t raw_post_bytes  = MAX_RAW_POSTING_LEN(base_size, text_size, freq);
     void *const allocation = MemPool_Grab(mem_pool, raw_post_bytes);
     RawPosting *const raw_posting
@@ -215,7 +215,7 @@ ScorePost_Make_Matcher_IMP(ScorePosting *self, Similarity *sim,
                            PostingList *plist, Compiler *compiler,
                            bool need_score) {
     ScorePostingMatcher *matcher
-        = (ScorePostingMatcher*)VTable_Make_Obj(SCOREPOSTINGMATCHER);
+        = (ScorePostingMatcher*)Class_Make_Obj(SCOREPOSTINGMATCHER);
     UNUSED_VAR(self);
     UNUSED_VAR(need_score);
     return ScorePostMatcher_init(matcher, sim, plist, compiler);

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Index/PostingListReader.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/PostingListReader.c b/core/Lucy/Index/PostingListReader.c
index 4ad2501..1fdf33a 100644
--- a/core/Lucy/Index/PostingListReader.c
+++ b/core/Lucy/Index/PostingListReader.c
@@ -53,7 +53,7 @@ DefPListReader_new(Schema *schema, Folder *folder, Snapshot *snapshot,
                    VArray *segments, int32_t seg_tick,
                    LexiconReader *lex_reader) {
     DefaultPostingListReader *self
-        = (DefaultPostingListReader*)VTable_Make_Obj(DEFAULTPOSTINGLISTREADER);
+        = (DefaultPostingListReader*)Class_Make_Obj(DEFAULTPOSTINGLISTREADER);
     return DefPListReader_init(self, schema, folder, snapshot, segments,
                                seg_tick, lex_reader);
 }

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Index/PostingListWriter.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/PostingListWriter.c b/core/Lucy/Index/PostingListWriter.c
index b398bc2..ff527bc 100644
--- a/core/Lucy/Index/PostingListWriter.c
+++ b/core/Lucy/Index/PostingListWriter.c
@@ -52,7 +52,7 @@ PostingListWriter*
 PListWriter_new(Schema *schema, Snapshot *snapshot, Segment *segment,
                 PolyReader *polyreader, LexiconWriter *lex_writer) {
     PostingListWriter *self
-        = (PostingListWriter*)VTable_Make_Obj(POSTINGLISTWRITER);
+        = (PostingListWriter*)Class_Make_Obj(POSTINGLISTWRITER);
     return PListWriter_init(self, schema, snapshot, segment, polyreader,
                             lex_writer);
 }

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Index/PostingPool.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/PostingPool.c b/core/Lucy/Index/PostingPool.c
index fc71473..3207c4c 100644
--- a/core/Lucy/Index/PostingPool.c
+++ b/core/Lucy/Index/PostingPool.c
@@ -63,7 +63,7 @@ PostPool_new(Schema *schema, Snapshot *snapshot, Segment *segment,
              LexiconWriter *lex_writer, MemoryPool *mem_pool,
              OutStream *lex_temp_out, OutStream *post_temp_out,
              OutStream *skip_out) {
-    PostingPool *self = (PostingPool*)VTable_Make_Obj(POSTINGPOOL);
+    PostingPool *self = (PostingPool*)Class_Make_Obj(POSTINGPOOL);
     return PostPool_init(self, schema, snapshot, segment, polyreader, field,
                          lex_writer, mem_pool, lex_temp_out, post_temp_out,
                          skip_out);
@@ -229,7 +229,7 @@ PostPool_Add_Segment_IMP(PostingPool *self, SegReader *reader,
                          I32Array *doc_map, int32_t doc_base) {
     PostingPoolIVARS *const ivars = PostPool_IVARS(self);
     LexiconReader *lex_reader = (LexiconReader*)SegReader_Fetch(
-                                    reader, VTable_Get_Name(LEXICONREADER));
+                                    reader, Class_Get_Name(LEXICONREADER));
     Lexicon *lexicon = lex_reader
                        ? LexReader_Lexicon(lex_reader, ivars->field, NULL)
                        : NULL;
@@ -237,7 +237,7 @@ PostPool_Add_Segment_IMP(PostingPool *self, SegReader *reader,
     if (lexicon) {
         PostingListReader *plist_reader
             = (PostingListReader*)SegReader_Fetch(
-                  reader, VTable_Get_Name(POSTINGLISTREADER));
+                  reader, Class_Get_Name(POSTINGLISTREADER));
         PostingList *plist = plist_reader
                              ? PListReader_Posting_List(plist_reader, ivars->field, NULL)
                              : NULL;
@@ -355,7 +355,7 @@ S_write_terms_and_postings(PostingPool *self, PostingWriter *post_writer,
 
     // Initialize sentinel to be used on the last iter, using an empty string
     // in order to make LexiconWriter Do The Right Thing.
-    size_t sentinel_size = VTable_Get_Obj_Alloc_Size(RAWPOSTING)
+    size_t sentinel_size = Class_Get_Obj_Alloc_Size(RAWPOSTING)
                            + 20;  // blob length + cushion
     char empty_string[] = "";
     RawPosting *sentinel = RawPost_new(alloca(sentinel_size), 0, 1,

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Index/RawLexicon.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/RawLexicon.c b/core/Lucy/Index/RawLexicon.c
index 2652d96..6eeaf7b 100644
--- a/core/Lucy/Index/RawLexicon.c
+++ b/core/Lucy/Index/RawLexicon.c
@@ -28,7 +28,7 @@
 RawLexicon*
 RawLex_new(Schema *schema, String *field, InStream *instream,
            int64_t start, int64_t end) {
-    RawLexicon *self = (RawLexicon*)VTable_Make_Obj(RAWLEXICON);
+    RawLexicon *self = (RawLexicon*)Class_Make_Obj(RAWLEXICON);
     return RawLex_init(self, schema, field, instream, start, end);
 }
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Index/RawPostingList.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/RawPostingList.c b/core/Lucy/Index/RawPostingList.c
index b2ced79..ec2837e 100644
--- a/core/Lucy/Index/RawPostingList.c
+++ b/core/Lucy/Index/RawPostingList.c
@@ -28,7 +28,7 @@
 RawPostingList*
 RawPList_new(Schema *schema, String *field, InStream *instream,
              int64_t start, int64_t end) {
-    RawPostingList *self = (RawPostingList*)VTable_Make_Obj(RAWPOSTINGLIST);
+    RawPostingList *self = (RawPostingList*)Class_Make_Obj(RAWPOSTINGLIST);
     return RawPList_init(self, schema, field, instream, start, end);
 }
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Index/SegLexicon.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/SegLexicon.c b/core/Lucy/Index/SegLexicon.c
index bd6e3df..31cf2bd 100644
--- a/core/Lucy/Index/SegLexicon.c
+++ b/core/Lucy/Index/SegLexicon.c
@@ -39,7 +39,7 @@ S_scan_to(SegLexicon *self, Obj *target);
 SegLexicon*
 SegLex_new(Schema *schema, Folder *folder, Segment *segment,
            String *field) {
-    SegLexicon *self = (SegLexicon*)VTable_Make_Obj(SEGLEXICON);
+    SegLexicon *self = (SegLexicon*)Class_Make_Obj(SEGLEXICON);
     return SegLex_init(self, schema, folder, segment, field);
 }
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Index/SegPostingList.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/SegPostingList.c b/core/Lucy/Index/SegPostingList.c
index 62dcdf4..304d3d0 100644
--- a/core/Lucy/Index/SegPostingList.c
+++ b/core/Lucy/Index/SegPostingList.c
@@ -44,7 +44,7 @@ S_seek_tinfo(SegPostingList *self, TermInfo *tinfo);
 
 SegPostingList*
 SegPList_new(PostingListReader *plist_reader, String *field) {
-    SegPostingList *self = (SegPostingList*)VTable_Make_Obj(SEGPOSTINGLIST);
+    SegPostingList *self = (SegPostingList*)Class_Make_Obj(SEGPOSTINGLIST);
     return SegPList_init(self, plist_reader, field);
 }
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Index/SegReader.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/SegReader.c b/core/Lucy/Index/SegReader.c
index b8ff67c..4ebcb76 100644
--- a/core/Lucy/Index/SegReader.c
+++ b/core/Lucy/Index/SegReader.c
@@ -36,7 +36,7 @@ S_try_init_components(void *context);
 SegReader*
 SegReader_new(Schema *schema, Folder *folder, Snapshot *snapshot,
               VArray *segments, int32_t seg_tick) {
-    SegReader *self = (SegReader*)VTable_Make_Obj(SEGREADER);
+    SegReader *self = (SegReader*)Class_Make_Obj(SEGREADER);
     return SegReader_init(self, schema, folder, snapshot, segments, seg_tick);
 }
 
@@ -62,7 +62,7 @@ SegReader_init(SegReader *self, Schema *schema, Folder *folder,
 
     DeletionsReader *del_reader
         = (DeletionsReader*)Hash_Fetch(
-              ivars->components, (Obj*)VTable_Get_Name(DELETIONSREADER));
+              ivars->components, (Obj*)Class_Get_Name(DELETIONSREADER));
     ivars->del_count = del_reader ? DelReader_Del_Count(del_reader) : 0;
 
     return self;

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Index/SegWriter.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/SegWriter.c b/core/Lucy/Index/SegWriter.c
index adcd6a1..6d360ff 100644
--- a/core/Lucy/Index/SegWriter.c
+++ b/core/Lucy/Index/SegWriter.c
@@ -33,7 +33,7 @@
 SegWriter*
 SegWriter_new(Schema *schema, Snapshot *snapshot, Segment *segment,
               PolyReader *polyreader) {
-    SegWriter *self = (SegWriter*)VTable_Make_Obj(SEGWRITER);
+    SegWriter *self = (SegWriter*)Class_Make_Obj(SEGWRITER);
     return SegWriter_init(self, schema, snapshot, segment, polyreader);
 }
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Index/Segment.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/Segment.c b/core/Lucy/Index/Segment.c
index cda56c4..785387a 100644
--- a/core/Lucy/Index/Segment.c
+++ b/core/Lucy/Index/Segment.c
@@ -27,7 +27,7 @@
 
 Segment*
 Seg_new(int64_t number) {
-    Segment *self = (Segment*)VTable_Make_Obj(SEGMENT);
+    Segment *self = (Segment*)Class_Make_Obj(SEGMENT);
     return Seg_init(self, number);
 }
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Index/Similarity.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/Similarity.c b/core/Lucy/Index/Similarity.c
index c43d9b4..cedb6e6 100644
--- a/core/Lucy/Index/Similarity.c
+++ b/core/Lucy/Index/Similarity.c
@@ -33,7 +33,7 @@
 
 Similarity*
 Sim_new() {
-    Similarity *self = (Similarity*)VTable_Make_Obj(SIMILARITY);
+    Similarity *self = (Similarity*)Class_Make_Obj(SIMILARITY);
     return Sim_init(self);
 }
 
@@ -93,8 +93,8 @@ Sim_Load_IMP(Similarity *self, Obj *dump) {
     Hash *source = (Hash*)CERTIFY(dump, HASH);
     String *class_name 
         = (String*)CERTIFY(Hash_Fetch_Utf8(source, "_class", 6), STRING);
-    VTable *vtable = VTable_singleton(class_name, NULL);
-    Similarity *loaded = (Similarity*)VTable_Make_Obj(vtable);
+    Class *klass = Class_singleton(class_name, NULL);
+    Similarity *loaded = (Similarity*)Class_Make_Obj(klass);
     UNUSED_VAR(self);
     return Sim_init(loaded);
 }
@@ -119,7 +119,7 @@ Sim_Deserialize_IMP(Similarity *self, InStream *instream) {
 
 bool
 Sim_Equals_IMP(Similarity *self, Obj *other) {
-    if (Sim_Get_VTable(self) != Obj_Get_VTable(other)) { return false; }
+    if (Sim_Get_Class(self) != Obj_Get_Class(other)) { return false; }
     return true;
 }
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Index/SkipStepper.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/SkipStepper.c b/core/Lucy/Index/SkipStepper.c
index a3fc5b4..9f22dc9 100644
--- a/core/Lucy/Index/SkipStepper.c
+++ b/core/Lucy/Index/SkipStepper.c
@@ -26,7 +26,7 @@
 
 SkipStepper*
 SkipStepper_new() {
-    SkipStepper *self = (SkipStepper*)VTable_Make_Obj(SKIPSTEPPER);
+    SkipStepper *self = (SkipStepper*)Class_Make_Obj(SKIPSTEPPER);
     SkipStepperIVARS *const ivars = SkipStepper_IVARS(self);
 
     // Init.

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Index/Snapshot.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/Snapshot.c b/core/Lucy/Index/Snapshot.c
index 1728e6b..d004eb1 100644
--- a/core/Lucy/Index/Snapshot.c
+++ b/core/Lucy/Index/Snapshot.c
@@ -32,7 +32,7 @@ static int32_t Snapshot_current_file_subformat = 1;
 
 Snapshot*
 Snapshot_new() {
-    Snapshot *self = (Snapshot*)VTable_Make_Obj(SNAPSHOT);
+    Snapshot *self = (Snapshot*)Class_Make_Obj(SNAPSHOT);
     return Snapshot_init(self);
 }
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Index/SortCache/NumericSortCache.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/SortCache/NumericSortCache.c b/core/Lucy/Index/SortCache/NumericSortCache.c
index 1fba4f1..77d98e0 100644
--- a/core/Lucy/Index/SortCache/NumericSortCache.c
+++ b/core/Lucy/Index/SortCache/NumericSortCache.c
@@ -86,7 +86,7 @@ F64SortCache_new(String *field, FieldType *type, int32_t cardinality,
                  int32_t doc_max, int32_t null_ord, int32_t ord_width,
                  InStream *ord_in, InStream *dat_in) {
     Float64SortCache *self
-        = (Float64SortCache*)VTable_Make_Obj(FLOAT64SORTCACHE);
+        = (Float64SortCache*)Class_Make_Obj(FLOAT64SORTCACHE);
     return F64SortCache_init(self, field, type, cardinality, doc_max,
                              null_ord, ord_width, ord_in, dat_in);
 }
@@ -124,7 +124,7 @@ F32SortCache_new(String *field, FieldType *type, int32_t cardinality,
                  int32_t doc_max, int32_t null_ord, int32_t ord_width,
                  InStream *ord_in, InStream *dat_in) {
     Float32SortCache *self
-        = (Float32SortCache*)VTable_Make_Obj(FLOAT32SORTCACHE);
+        = (Float32SortCache*)Class_Make_Obj(FLOAT32SORTCACHE);
     return F32SortCache_init(self, field, type, cardinality, doc_max,
                              null_ord, ord_width, ord_in, dat_in);
 }
@@ -162,7 +162,7 @@ I32SortCache_new(String *field, FieldType *type, int32_t cardinality,
                  int32_t doc_max, int32_t null_ord, int32_t ord_width,
                  InStream *ord_in, InStream *dat_in) {
     Int32SortCache *self
-        = (Int32SortCache*)VTable_Make_Obj(INT32SORTCACHE);
+        = (Int32SortCache*)Class_Make_Obj(INT32SORTCACHE);
     return I32SortCache_init(self, field, type, cardinality, doc_max,
                              null_ord, ord_width, ord_in, dat_in);
 }
@@ -200,7 +200,7 @@ I64SortCache_new(String *field, FieldType *type, int32_t cardinality,
                  int32_t doc_max, int32_t null_ord, int32_t ord_width,
                  InStream *ord_in, InStream *dat_in) {
     Int64SortCache *self
-        = (Int64SortCache*)VTable_Make_Obj(INT64SORTCACHE);
+        = (Int64SortCache*)Class_Make_Obj(INT64SORTCACHE);
     return I64SortCache_init(self, field, type, cardinality, doc_max,
                              null_ord, ord_width, ord_in, dat_in);
 }

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Index/SortCache/TextSortCache.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/SortCache/TextSortCache.c b/core/Lucy/Index/SortCache/TextSortCache.c
index 19fa3df..8b58dbf 100644
--- a/core/Lucy/Index/SortCache/TextSortCache.c
+++ b/core/Lucy/Index/SortCache/TextSortCache.c
@@ -28,7 +28,7 @@ TextSortCache*
 TextSortCache_new(String *field, FieldType *type, int32_t cardinality,
                   int32_t doc_max, int32_t null_ord, int32_t ord_width,
                   InStream *ord_in, InStream *ix_in, InStream *dat_in) {
-    TextSortCache *self = (TextSortCache*)VTable_Make_Obj(TEXTSORTCACHE);
+    TextSortCache *self = (TextSortCache*)Class_Make_Obj(TEXTSORTCACHE);
     return TextSortCache_init(self, field, type, cardinality, doc_max,
                               null_ord, ord_width, ord_in, ix_in, dat_in);
 }

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Index/SortFieldWriter.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/SortFieldWriter.c b/core/Lucy/Index/SortFieldWriter.c
index 31b04e8..9ef8bf4 100644
--- a/core/Lucy/Index/SortFieldWriter.c
+++ b/core/Lucy/Index/SortFieldWriter.c
@@ -70,7 +70,7 @@ SortFieldWriter_new(Schema *schema, Snapshot *snapshot, Segment *segment,
                     OutStream *temp_ord_out, OutStream *temp_ix_out,
                     OutStream *temp_dat_out) {
     SortFieldWriter *self
-        = (SortFieldWriter*)VTable_Make_Obj(SORTFIELDWRITER);
+        = (SortFieldWriter*)Class_Make_Obj(SORTFIELDWRITER);
     return SortFieldWriter_init(self, schema, snapshot, segment, polyreader,
                                 field, counter, mem_thresh, temp_ord_out,
                                 temp_ix_out, temp_dat_out);
@@ -120,17 +120,17 @@ SortFieldWriter_init(SortFieldWriter *self, Schema *schema,
                           Schema_Fetch_Type(ivars->schema, field), FIELDTYPE);
     ivars->type    = (FieldType*)INCREF(type);
     ivars->prim_id = FType_Primitive_ID(type);
-    ivars->mem_per_entry = VTable_Get_Obj_Alloc_Size(SFWRITERELEM);
+    ivars->mem_per_entry = Class_Get_Obj_Alloc_Size(SFWRITERELEM);
     if (ivars->prim_id == FType_TEXT) {
-        ivars->mem_per_entry += VTable_Get_Obj_Alloc_Size(STRING);
+        ivars->mem_per_entry += Class_Get_Obj_Alloc_Size(STRING);
         ivars->var_width = true;
     }
     else if (ivars->prim_id == FType_BLOB) {
-        ivars->mem_per_entry += VTable_Get_Obj_Alloc_Size(BYTEBUF);
+        ivars->mem_per_entry += Class_Get_Obj_Alloc_Size(BYTEBUF);
         ivars->var_width = true;
     }
     else {
-        ivars->mem_per_entry += VTable_Get_Obj_Alloc_Size(FLOAT64);
+        ivars->mem_per_entry += Class_Get_Obj_Alloc_Size(FLOAT64);
         ivars->var_width = false;
     }
 
@@ -739,7 +739,7 @@ S_flip_run(SortFieldWriter *run, size_t sub_thresh, InStream *ord_in,
 
 static SFWriterElem*
 S_SFWriterElem_create(Obj *value, int32_t doc_id) {
-    SFWriterElem *self = (SFWriterElem*)VTable_Make_Obj(SFWRITERELEM);
+    SFWriterElem *self = (SFWriterElem*)Class_Make_Obj(SFWRITERELEM);
     SFWriterElemIVARS *ivars = SFWriterElem_IVARS(self);
     ivars->value  = value;
     ivars->doc_id = doc_id;

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Index/SortReader.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/SortReader.c b/core/Lucy/Index/SortReader.c
index af337e2..6bff395 100644
--- a/core/Lucy/Index/SortReader.c
+++ b/core/Lucy/Index/SortReader.c
@@ -51,7 +51,7 @@ DefaultSortReader*
 DefSortReader_new(Schema *schema, Folder *folder, Snapshot *snapshot,
                   VArray *segments, int32_t seg_tick) {
     DefaultSortReader *self
-        = (DefaultSortReader*)VTable_Make_Obj(DEFAULTSORTREADER);
+        = (DefaultSortReader*)Class_Make_Obj(DEFAULTSORTREADER);
     return DefSortReader_init(self, schema, folder, snapshot, segments,
                               seg_tick);
 }

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Index/SortWriter.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/SortWriter.c b/core/Lucy/Index/SortWriter.c
index bd3b690..334b852 100644
--- a/core/Lucy/Index/SortWriter.c
+++ b/core/Lucy/Index/SortWriter.c
@@ -43,7 +43,7 @@ static size_t default_mem_thresh = 0x400000; // 4 MB
 SortWriter*
 SortWriter_new(Schema *schema, Snapshot *snapshot, Segment *segment,
                PolyReader *polyreader) {
-    SortWriter *self = (SortWriter*)VTable_Make_Obj(SORTWRITER);
+    SortWriter *self = (SortWriter*)Class_Make_Obj(SORTWRITER);
     return SortWriter_init(self, schema, snapshot, segment, polyreader);
 }
 
@@ -172,7 +172,7 @@ SortWriter_Add_Segment_IMP(SortWriter *self, SegReader *reader,
     for (uint32_t i = 0, max = VA_Get_Size(fields); i < max; i++) {
         String *field = (String*)VA_Fetch(fields, i);
         SortReader *sort_reader = (SortReader*)SegReader_Fetch(
-                                      reader, VTable_Get_Name(SORTREADER));
+                                      reader, Class_Get_Name(SORTREADER));
         SortCache *cache = sort_reader
                            ? SortReader_Fetch_Sort_Cache(sort_reader, field)
                            : NULL;
@@ -277,7 +277,7 @@ SortWriter_Format_IMP(SortWriter *self) {
 
 Counter*
 Counter_new() {
-    Counter *self = (Counter*)VTable_Make_Obj(COUNTER);
+    Counter *self = (Counter*)Class_Make_Obj(COUNTER);
     return Counter_init(self);
 }
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Index/TermInfo.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/TermInfo.c b/core/Lucy/Index/TermInfo.c
index 7a840a4..697d604 100644
--- a/core/Lucy/Index/TermInfo.c
+++ b/core/Lucy/Index/TermInfo.c
@@ -22,7 +22,7 @@
 
 TermInfo*
 TInfo_new(int32_t doc_freq) {
-    TermInfo *self = (TermInfo*)VTable_Make_Obj(TERMINFO);
+    TermInfo *self = (TermInfo*)Class_Make_Obj(TERMINFO);
     return TInfo_init(self, doc_freq);
 }
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Index/TermVector.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/TermVector.c b/core/Lucy/Index/TermVector.c
index edf8a8b..e8d5aab 100644
--- a/core/Lucy/Index/TermVector.c
+++ b/core/Lucy/Index/TermVector.c
@@ -26,7 +26,7 @@
 TermVector*
 TV_new(String *field, String *text, I32Array *positions,
        I32Array *start_offsets, I32Array *end_offsets) {
-    TermVector *self = (TermVector*)VTable_Make_Obj(TERMVECTOR);
+    TermVector *self = (TermVector*)Class_Make_Obj(TERMVECTOR);
     return TV_init(self, field, text, positions, start_offsets, end_offsets);
 }
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Object/BitVector.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Object/BitVector.c b/core/Lucy/Object/BitVector.c
index fdcd2f1..efc7278 100644
--- a/core/Lucy/Object/BitVector.c
+++ b/core/Lucy/Object/BitVector.c
@@ -50,7 +50,7 @@ static const uint32_t BYTE_COUNTS[256] = {
 
 BitVector*
 BitVec_new(uint32_t capacity) {
-    BitVector *self = (BitVector*)VTable_Make_Obj(BITVECTOR);
+    BitVector *self = (BitVector*)Class_Make_Obj(BITVECTOR);
     return BitVec_init(self, capacity);
 }
 
@@ -85,7 +85,7 @@ BitVec_Clone_IMP(BitVector *self) {
     BitVectorIVARS *const ovars = BitVec_IVARS(other);
 
     // Forbid inheritance.
-    if (BitVec_Get_VTable(self) != BITVECTOR) {
+    if (BitVec_Get_Class(self) != BITVECTOR) {
         THROW(ERR, "Attempt by %o to inherit BitVec_Clone",
               BitVec_Get_Class_Name(self));
     }

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Object/I32Array.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Object/I32Array.c b/core/Lucy/Object/I32Array.c
index 284edb4..d82448f 100644
--- a/core/Lucy/Object/I32Array.c
+++ b/core/Lucy/Object/I32Array.c
@@ -21,7 +21,7 @@
 
 I32Array*
 I32Arr_new(int32_t *ints, uint32_t size) {
-    I32Array *self = (I32Array*)VTable_Make_Obj(I32ARRAY);
+    I32Array *self = (I32Array*)Class_Make_Obj(I32ARRAY);
     int32_t *ints_copy = (int32_t*)MALLOCATE(size * sizeof(int32_t));
     memcpy(ints_copy, ints, size * sizeof(int32_t));
     return I32Arr_init(self, ints_copy, size);
@@ -29,14 +29,14 @@ I32Arr_new(int32_t *ints, uint32_t size) {
 
 I32Array*
 I32Arr_new_blank(uint32_t size) {
-    I32Array *self = (I32Array*)VTable_Make_Obj(I32ARRAY);
+    I32Array *self = (I32Array*)Class_Make_Obj(I32ARRAY);
     int32_t *ints = (int32_t*)CALLOCATE(size, sizeof(int32_t));
     return I32Arr_init(self, ints, size);
 }
 
 I32Array*
 I32Arr_new_steal(int32_t *ints, uint32_t size) {
-    I32Array *self = (I32Array*)VTable_Make_Obj(I32ARRAY);
+    I32Array *self = (I32Array*)Class_Make_Obj(I32ARRAY);
     return I32Arr_init(self, ints, size);
 }
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Plan/Architecture.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Plan/Architecture.c b/core/Lucy/Plan/Architecture.c
index 450f3b8..8986f0e 100644
--- a/core/Lucy/Plan/Architecture.c
+++ b/core/Lucy/Plan/Architecture.c
@@ -41,7 +41,7 @@
 
 Architecture*
 Arch_new() {
-    Architecture *self = (Architecture*)VTable_Make_Obj(ARCHITECTURE);
+    Architecture *self = (Architecture*)Class_Make_Obj(ARCHITECTURE);
     return Arch_init(self);
 }
 
@@ -77,7 +77,7 @@ Arch_Register_Lexicon_Writer_IMP(Architecture *self, SegWriter *writer) {
     LexiconWriter *lex_writer
         = LexWriter_new(schema, snapshot, segment, polyreader);
     UNUSED_VAR(self);
-    SegWriter_Register(writer, VTable_Get_Name(LEXICONWRITER),
+    SegWriter_Register(writer, Class_Get_Name(LEXICONWRITER),
                        (DataWriter*)lex_writer);
 }
 
@@ -88,7 +88,7 @@ Arch_Register_Posting_List_Writer_IMP(Architecture *self, SegWriter *writer) {
     Segment       *segment    = SegWriter_Get_Segment(writer);
     PolyReader    *polyreader = SegWriter_Get_PolyReader(writer);
     LexiconWriter *lex_writer = (LexiconWriter*)SegWriter_Fetch(
-                                    writer, VTable_Get_Name(LEXICONWRITER));
+                                    writer, Class_Get_Name(LEXICONWRITER));
     UNUSED_VAR(self);
     if (!lex_writer) {
         THROW(ERR, "Can't fetch a LexiconWriter");
@@ -97,7 +97,7 @@ Arch_Register_Posting_List_Writer_IMP(Architecture *self, SegWriter *writer) {
         PostingListWriter *plist_writer
             = PListWriter_new(schema, snapshot, segment, polyreader,
                               lex_writer);
-        SegWriter_Register(writer, VTable_Get_Name(POSTINGLISTWRITER),
+        SegWriter_Register(writer, Class_Get_Name(POSTINGLISTWRITER),
                            (DataWriter*)plist_writer);
         SegWriter_Add_Writer(writer, (DataWriter*)INCREF(plist_writer));
     }
@@ -112,7 +112,7 @@ Arch_Register_Doc_Writer_IMP(Architecture *self, SegWriter *writer) {
     DocWriter  *doc_writer
         = DocWriter_new(schema, snapshot, segment, polyreader);
     UNUSED_VAR(self);
-    SegWriter_Register(writer, VTable_Get_Name(DOCWRITER),
+    SegWriter_Register(writer, Class_Get_Name(DOCWRITER),
                        (DataWriter*)doc_writer);
     SegWriter_Add_Writer(writer, (DataWriter*)INCREF(doc_writer));
 }
@@ -126,7 +126,7 @@ Arch_Register_Sort_Writer_IMP(Architecture *self, SegWriter *writer) {
     SortWriter *sort_writer
         = SortWriter_new(schema, snapshot, segment, polyreader);
     UNUSED_VAR(self);
-    SegWriter_Register(writer, VTable_Get_Name(SORTWRITER),
+    SegWriter_Register(writer, Class_Get_Name(SORTWRITER),
                        (DataWriter*)sort_writer);
     SegWriter_Add_Writer(writer, (DataWriter*)INCREF(sort_writer));
 }
@@ -140,7 +140,7 @@ Arch_Register_Highlight_Writer_IMP(Architecture *self, SegWriter *writer) {
     HighlightWriter *hl_writer
         = HLWriter_new(schema, snapshot, segment, polyreader);
     UNUSED_VAR(self);
-    SegWriter_Register(writer, VTable_Get_Name(HIGHLIGHTWRITER),
+    SegWriter_Register(writer, Class_Get_Name(HIGHLIGHTWRITER),
                        (DataWriter*)hl_writer);
     SegWriter_Add_Writer(writer, (DataWriter*)INCREF(hl_writer));
 }
@@ -154,7 +154,7 @@ Arch_Register_Deletions_Writer_IMP(Architecture *self, SegWriter *writer) {
     DefaultDeletionsWriter *del_writer
         = DefDelWriter_new(schema, snapshot, segment, polyreader);
     UNUSED_VAR(self);
-    SegWriter_Register(writer, VTable_Get_Name(DELETIONSWRITER),
+    SegWriter_Register(writer, Class_Get_Name(DELETIONSWRITER),
                        (DataWriter*)del_writer);
     SegWriter_Set_Del_Writer(writer, (DeletionsWriter*)del_writer);
 }
@@ -179,7 +179,7 @@ Arch_Register_Doc_Reader_IMP(Architecture *self, SegReader *reader) {
     DefaultDocReader *doc_reader
         = DefDocReader_new(schema, folder, snapshot, segments, seg_tick);
     UNUSED_VAR(self);
-    SegReader_Register(reader, VTable_Get_Name(DOCREADER),
+    SegReader_Register(reader, Class_Get_Name(DOCREADER),
                        (DataReader*)doc_reader);
 }
 
@@ -191,12 +191,12 @@ Arch_Register_Posting_List_Reader_IMP(Architecture *self, SegReader *reader) {
     Snapshot  *snapshot = SegReader_Get_Snapshot(reader);
     int32_t    seg_tick = SegReader_Get_Seg_Tick(reader);
     LexiconReader *lex_reader = (LexiconReader*)SegReader_Obtain(
-                                    reader, VTable_Get_Name(LEXICONREADER));
+                                    reader, Class_Get_Name(LEXICONREADER));
     DefaultPostingListReader *plist_reader
         = DefPListReader_new(schema, folder, snapshot, segments, seg_tick,
                              lex_reader);
     UNUSED_VAR(self);
-    SegReader_Register(reader, VTable_Get_Name(POSTINGLISTREADER),
+    SegReader_Register(reader, Class_Get_Name(POSTINGLISTREADER),
                        (DataReader*)plist_reader);
 }
 
@@ -210,7 +210,7 @@ Arch_Register_Lexicon_Reader_IMP(Architecture *self, SegReader *reader) {
     DefaultLexiconReader *lex_reader
         = DefLexReader_new(schema, folder, snapshot, segments, seg_tick);
     UNUSED_VAR(self);
-    SegReader_Register(reader, VTable_Get_Name(LEXICONREADER),
+    SegReader_Register(reader, Class_Get_Name(LEXICONREADER),
                        (DataReader*)lex_reader);
 }
 
@@ -224,7 +224,7 @@ Arch_Register_Sort_Reader_IMP(Architecture *self, SegReader *reader) {
     DefaultSortReader *sort_reader
         = DefSortReader_new(schema, folder, snapshot, segments, seg_tick);
     UNUSED_VAR(self);
-    SegReader_Register(reader, VTable_Get_Name(SORTREADER),
+    SegReader_Register(reader, Class_Get_Name(SORTREADER),
                        (DataReader*)sort_reader);
 }
 
@@ -238,7 +238,7 @@ Arch_Register_Highlight_Reader_IMP(Architecture *self, SegReader *reader) {
     DefaultHighlightReader* hl_reader
         = DefHLReader_new(schema, folder, snapshot, segments, seg_tick);
     UNUSED_VAR(self);
-    SegReader_Register(reader, VTable_Get_Name(HIGHLIGHTREADER),
+    SegReader_Register(reader, Class_Get_Name(HIGHLIGHTREADER),
                        (DataReader*)hl_reader);
 }
 
@@ -252,7 +252,7 @@ Arch_Register_Deletions_Reader_IMP(Architecture *self, SegReader *reader) {
     DefaultDeletionsReader* del_reader
         = DefDelReader_new(schema, folder, snapshot, segments, seg_tick);
     UNUSED_VAR(self);
-    SegReader_Register(reader, VTable_Get_Name(DELETIONSREADER),
+    SegReader_Register(reader, Class_Get_Name(DELETIONSREADER),
                        (DataReader*)del_reader);
 }
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Plan/BlobType.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Plan/BlobType.c b/core/Lucy/Plan/BlobType.c
index 5b94640..a9a2192 100644
--- a/core/Lucy/Plan/BlobType.c
+++ b/core/Lucy/Plan/BlobType.c
@@ -21,7 +21,7 @@
 
 BlobType*
 BlobType_new(bool stored) {
-    BlobType *self = (BlobType*)VTable_Make_Obj(BLOBTYPE);
+    BlobType *self = (BlobType*)Class_Make_Obj(BLOBTYPE);
     return BlobType_init(self, stored);
 }
 
@@ -94,11 +94,11 @@ BlobType*
 BlobType_Load_IMP(BlobType *self, Obj *dump) {
     Hash *source = (Hash*)CERTIFY(dump, HASH);
     String *class_name = (String*)Hash_Fetch_Utf8(source, "_class", 6);
-    VTable *vtable
+    Class *klass
         = (class_name != NULL && Obj_Is_A((Obj*)class_name, STRING))
-          ? VTable_singleton(class_name, NULL)
+          ? Class_singleton(class_name, NULL)
           : BLOBTYPE;
-    BlobType *loaded     = (BlobType*)VTable_Make_Obj(vtable);
+    BlobType *loaded     = (BlobType*)Class_Make_Obj(klass);
     Obj *boost_dump      = Hash_Fetch_Utf8(source, "boost", 5);
     Obj *indexed_dump    = Hash_Fetch_Utf8(source, "indexed", 7);
     Obj *stored_dump     = Hash_Fetch_Utf8(source, "stored", 6);

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Plan/FieldType.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Plan/FieldType.c b/core/Lucy/Plan/FieldType.c
index 5ff4945..a3b2ffc 100644
--- a/core/Lucy/Plan/FieldType.c
+++ b/core/Lucy/Plan/FieldType.c
@@ -99,14 +99,14 @@ FType_Compare_Values_IMP(FieldType *self, Obj *a, Obj *b) {
 
 bool
 FType_Equals_IMP(FieldType *self, Obj *other) {
-    if ((FieldType*)other == self)                       { return true; }
-    if (FType_Get_VTable(self) != Obj_Get_VTable(other)) { return false; }
+    if ((FieldType*)other == self)                     { return true; }
+    if (FType_Get_Class(self) != Obj_Get_Class(other)) { return false; }
     FieldTypeIVARS *const ivars = FType_IVARS(self);
     FieldTypeIVARS *const ovars = FType_IVARS((FieldType*)other);
-    if (ivars->boost != ovars->boost)                    { return false; }
-    if (!!ivars->indexed    != !!ovars->indexed)         { return false; }
-    if (!!ivars->stored     != !!ovars->stored)          { return false; }
-    if (!!ivars->sortable   != !!ovars->sortable)        { return false; }
+    if (ivars->boost != ovars->boost)                  { return false; }
+    if (!!ivars->indexed    != !!ovars->indexed)       { return false; }
+    if (!!ivars->stored     != !!ovars->stored)        { return false; }
+    if (!!ivars->sortable   != !!ovars->sortable)      { return false; }
     if (!!FType_Binary(self) != !!FType_Binary((FieldType*)other)) {
         return false;
     }

http://git-wip-us.apache.org/repos/asf/lucy/blob/b1975f5d/core/Lucy/Plan/FullTextType.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Plan/FullTextType.c b/core/Lucy/Plan/FullTextType.c
index 30f2919..893b1b6 100644
--- a/core/Lucy/Plan/FullTextType.c
+++ b/core/Lucy/Plan/FullTextType.c
@@ -25,7 +25,7 @@
 
 FullTextType*
 FullTextType_new(Analyzer *analyzer) {
-    FullTextType *self = (FullTextType*)VTable_Make_Obj(FULLTEXTTYPE);
+    FullTextType *self = (FullTextType*)Class_Make_Obj(FULLTEXTTYPE);
     return FullTextType_init(self, analyzer);
 }
 
@@ -121,11 +121,11 @@ FullTextType_Load_IMP(FullTextType *self, Obj *dump) {
     UNUSED_VAR(self);
     Hash *source = (Hash*)CERTIFY(dump, HASH);
     String *class_name = (String*)Hash_Fetch_Utf8(source, "_class", 6);
-    VTable *vtable
+    Class *klass
         = (class_name != NULL && Obj_Is_A((Obj*)class_name, STRING))
-          ? VTable_singleton(class_name, NULL)
+          ? Class_singleton(class_name, NULL)
           : FULLTEXTTYPE;
-    FullTextType *loaded = (FullTextType*)VTable_Make_Obj(vtable);
+    FullTextType *loaded = (FullTextType*)Class_Make_Obj(klass);
 
     // Extract boost.
     Obj *boost_dump = Hash_Fetch_Utf8(source, "boost", 5);