add wrapped callback