Ui refactoring, now with error handling and blocking UI during wait