rework prev
handle generic for delegates