The three basic components of a contract are offer, acceptance and consideration. When these things exist can change depending on the nature of the parties (e.g., UCC, merchants). While the concepts of offer and acceptance are relatively straightforward to a non-lawyer, consideration is often not.
Consideration is either a promise (to do or refrain from doing something) or the transfer or giving up of something of value to the other party. Generally, if a contract contains mutual promises, such that a legal duty or liability is imposed on each party as a promisor to the other party as the promisee, the contract is a bilateral contract supported by sufficient consideration.” Whitworth v. McBride & Son Homes, Inc., 344 S.W.3d 730 (Mo. Ct. App. 2011). In contrast, there is no valid consideration if one party to an agreement retains the unilateral right to modify or alter a contract. This would legally be considered an illusory promise.