create UserInterface protocol