Index: tests/.expect/quasiKeyword.txt
===================================================================
--- tests/.expect/quasiKeyword.txt	(revision 6dc7011ad568b43c34d357b8ccdd73a45e262511)
+++ tests/.expect/quasiKeyword.txt	(revision c715e5ff6f93573553c28ad82808e7e566136c47)
@@ -1,1 +1,1 @@
-quasiKeyword.cfa:54:25: warning: Compiled
+quasiKeyword.cfa:52:25: warning: Compiled
Index: tests/exceptions/defaults.cfa
===================================================================
--- tests/exceptions/defaults.cfa	(revision 6dc7011ad568b43c34d357b8ccdd73a45e262511)
+++ tests/exceptions/defaults.cfa	(revision c715e5ff6f93573553c28ad82808e7e566136c47)
@@ -2,5 +2,4 @@
 
 #include <string.h>
-#include <exception.hfa>
 
 exception log_message {
@@ -8,9 +7,19 @@
 };
 
-_EHM_DEFINE_COPY(log_message, )
+void copy(log_message * this, log_message * that) {
+	*this = *that;
+}
+
 const char * msg(log_message * this) {
 	return this->msg;
 }
-_EHM_VIRTUAL_TABLE(log_message, , log_vt);
+
+const struct log_message_vtable log_vt @= {
+	.__cfavir_typeid : &__cfatid_log_message,
+	.size : sizeof(struct log_message),
+	.copy : copy,
+	.^?{} : ^?{},
+	.msg : msg,
+};
 
 // Logging messages don't have to be handled.
Index: tests/linking/exception-nothreads.cfa
===================================================================
--- tests/linking/exception-nothreads.cfa	(revision 6dc7011ad568b43c34d357b8ccdd73a45e262511)
+++ tests/linking/exception-nothreads.cfa	(revision c715e5ff6f93573553c28ad82808e7e566136c47)
@@ -15,8 +15,7 @@
 
 #include <stdlib.hfa>
-#include <exception.hfa>
 
-EHM_EXCEPTION(ping)();
-EHM_VIRTUAL_TABLE(ping, ping_vt);
+exception ping {};
+vtable(ping) ping_vt;
 
 int main(void) {
Index: tests/linking/exception-withthreads.cfa
===================================================================
--- tests/linking/exception-withthreads.cfa	(revision 6dc7011ad568b43c34d357b8ccdd73a45e262511)
+++ tests/linking/exception-withthreads.cfa	(revision c715e5ff6f93573553c28ad82808e7e566136c47)
@@ -15,9 +15,8 @@
 
 #include <stdlib.hfa>
-#include <exception.hfa>
 #include "../exceptions/with-threads.hfa"
 
-EHM_EXCEPTION(ping)();
-EHM_VIRTUAL_TABLE(ping, ping_vt);
+exception ping {};
+vtable(ping) ping_vt;
 
 int main(void) {
Index: tests/quasiKeyword.cfa
===================================================================
--- tests/quasiKeyword.cfa	(revision 6dc7011ad568b43c34d357b8ccdd73a45e262511)
+++ tests/quasiKeyword.cfa	(revision c715e5ff6f93573553c28ad82808e7e566136c47)
@@ -4,5 +4,5 @@
 // quasiKeyword.cfa -- test that quasi-keywords can be used for variable and functions names, as well as keywords in
 //					   control structures.
-// 
+//
 // Author           : Peter A. Buhr
 // Created On       : Wed Feb 17 10:33:49 2021
@@ -10,9 +10,7 @@
 // Last Modified On : Sat Jun  5 10:07:59 2021
 // Update Count     : 8
-// 
+//
 
-#include <exception.hfa>
-
-EHM_EXCEPTION( E )();
+exception E {};
 
 void catch( int i ) {}
@@ -49,5 +47,5 @@
 		} fixup ( E * ) {
 		} finally {
-		} 
+		}
 	else catch = 3;
 
