Added progress_window

It's part of an effort to push more progress logic in core code.