pass by value and by reference