Refactoring for AsyncCallback and ProgressState