The great feature of using proxy contracts is that the end user never needs to change the address of the Foo contract that they make calls to. The user can trust that all calls to the Foo proxy contract will be delegated to the latest logic contract’s implementation of bar().