WIP: Much UI awesomeness

Fixes #89, #88, #85, #75, #73, #43, #41, #34.

@pdehaan r?
variable-ize?