First stab at the UI and some more backend modifications

[Skip ci]