https://github.com/thanhnguyennguyen/smart-contract-practice/tree/master/contracts/lottery/design
https://rinkeby.etherscan.io/address/0xa0a5566cb16c16384f3b7b3a3a67cbbe0bf2f137
bytes32 data; (~ byte[32] data ) bytes data (~ byte[] data ) String vss bytes
Constructor overloading is not supported
Variables initialized to defaults at the beginning of functions
No keyword abstract contract, function declared but no body provided. That class can not be deployed
to implement an interface, use keywork is, similar for extending abstract contract
Using a registry Contract to manage all contracts, then using contract name to access instance of a particular contract