UserInterface must be an interface