adapted callback