added Patient.event() and some other clean up