implement more bits of the propsed event system