refactor, gui changes, progress dialog
