ui: initial commit. very early, a lot incomplete.