refactored user interface