wrap callback with dezalgo