Add in progress tracking. Clean up code and dependencies found while
adding the tracking. Fix up unit tests because of method changes and cleanup.