make sync optional