add synchronous processing support