What are the main requirements for a valid contract? And what is the difference between an offer and an invitation to treat and why is the difference important?