skeleton for synchronous io