supports rerenders
merging