add callback functionality to a bunch of methods