added goal following; event handling