Add event functionality

@adlawson here it is