Should NOT extend `UserInterface`