From google… improve code readability, facilitate efficient parameter passing, and avoid unnecessary object copying