pass frame explicitly to event listeners