add peek event function