pass by ref semantics