* generalize synctask