WIP: Much UI awesomeness

Fixes #89, #88, #85, #75, #73, #43, #41, #34.

@pdehaan r?
is `5 * 1000` a magic number risk that we want to move into some variable/const?