How to write Smart Contracts