implement UI and option