same sync but used switch