update virtual-dom