sync version works well
edit basic-sync
rewrite use promise, better
add progress notification