more ui work, small refactor of backend