Starting with this best practice, the next few UrbanRemix environment. Remix keep changing quite frequently with weekly update. But it does provide a single web ID for all your development needs. Pay attention to remix static analysis. When compiling on remix, pay attention to static analysis warning it provides on the right panel. Many of these are quite useful for developing better smart contracts. For example, one of the warnings it offers is about time variable. Now, revisit the ballad example and check out the static analysis on variable now provided by remix environment. Pay attention to remix console detail. We began this course with a little history about smart contracts. We then discuss the basic structure of a smart contract, the development environment remix and the artifacts generated by the compiler process. We then illustrated the smart contract development and the solidity language with several smart contract greeter, bidder, mentor, and several versions of the ballot. We developed several versions of the ballot contract, adding features in incremental steps. We concluded the course by listing some best practices, and design, and development of smart contract. Now, here is your opportunity to apply all of the concepts learned in this course to proto-type blockchain solutions. Let's go ahead and do it. Review remix compile details. Remix compiler is a just-in-time compiler. As you're entering the code in the editor window, its syntax checks and flags any errors with a red button X. Click on it to get more details on the error. This is useful information that helps you learn the syntax as you go, and you're able to make corrections. After compile, when you click on the details button, you can see all the artifacts generated by the compiler process. Remix transaction log for debugging. The remix panel has a floppy disk icon. When you click on this, you can see the JSon version of all the executed transaction. This Json file can be saved and used for studying the transaction details, and also for debugging any run-time issues and logic problems with a smart contract code. To summarize, we reviewed a few best practices for different aspects related to smart contract. Of course, this list does not cover all the best practices. We'll collect and add some more to this list as we progress through the specialization. I'm glad that you joined me in this exploration of smart contracts. I encourage you to use the open discussion forum to share your experience with the design, development, testing, and execution of a smart contract on a blockchain.