add ByValue option
ByValue -> NonPointer