add progress and fix some problem