ui elements refactored