(in progress) port over all events related classes

breaking this up.. Eventsmixin is in #5