describe callback and event structure