o: keep per thread private fun copy