Feature/initial cut

actually, keeping it reads since the event structure is ambiguous if its arbitrary io.