add progress bar and implement the progress checking with spending limit