use indirect reference for copying. break binary compatibility for
serialization