Index: src/tests/coroutine.c
===================================================================
--- src/tests/coroutine.c	(revision 5c811054a9b733b08300e7eaa7910d929010469d)
+++ src/tests/coroutine.c	(revision 550a3385540fe0c2834b682893eb6e8280c52af1)
@@ -4,27 +4,13 @@
 struct Fibonacci {
       int fn; // used for communication
-      covptr_t v;
       coroutine c;
-};
-
-void co_main(Fibonacci* this);
-covptr_t* vtable(Fibonacci* this);
-
-//GENERATED in proposal for virtuals
-void co_main_fib(void* this) {
-      co_main( (Fibonacci*) this );
-}
-
-//GENERATED in proposal for virtuals
-static coVtable_t FibonacciVtable = {
-      co_main_fib,
-      VPTR_OFFSET(Fibonacci, v, c),
-      VPTR_OFFSET(Fibonacci, v, fn)      
 };
 
 void ?{}(Fibonacci* this) {
       this->fn = 0;
-      this->v = &FibonacciVtable;  //GENERATED in proposal for virtuals
-      (&this->c) { &this->v };
+}
+
+coroutine* get_coroutine(Fibonacci* this) {
+      return &this->c;
 }
 
@@ -57,8 +43,4 @@
 }
 
-covptr_t* vtable(Fibonacci* this) {
-      return &this->v;
-}
-
 int main() {
       Fibonacci f1, f2;
