UI extracted to Vermeil.UI