now using events to communicate with the progress control