closes #8 optimize ui update + highlighting