refactored UI