now uses evented architecture