Creating a basic contract from scratch