always call callback from setMode