pass table as the first callback arg