implements vtable lookup strategy