add progress bar, spin waiter, prepare for the next async version
update the license and readme