How to create smart contracts for beginners