I am new in tezos and I am trying to find a way to upgrade my smart contract. I found out we will be able to upgrade a contract using proxy delegate contract or storing lambdas on the contract. Basically, I just want to add a new function on already deployed contract. I need a detailed information on this process. Is there any documentation or template that guides us through the update procedure of a smart contract.