selecable sync or async