added printcallback