Adding events and updating give function