exception handling, UI enhancement, refactoring