event handling front end