it can get a little flashy, but this is a much better way to update the interface when the list changes
eventually, the entire list doesn't need to update each time