use document fragment