port over more of the UI