Semi-working first pass on UI