added comments
yield and destroy status_window and progress_window if block given