WIP: vEvent abstraction compiles; must move other components to match