smoothed out updates by using .transition()