Some more ui refactoring

total mess right now, looking forward to getting some time to totally
clean the whole thing up and add tests