Selling ETH for ERC20 tokens --> increases the size of the ETH reserve and decreases the size of the ERC20 reserve --> shifts the reserve ratio, increasing the ERC20 token's price relative to ETH for subsequent transactions.
Limit Order: traders can specify the minimum amount bought on sell orders or the max amount sold on buy orders --> limti order --> automatically cancels if not fulfilled.
Transaction deadlines: cancel orders if they are not executed fast enough.
Only one exchange per token can be registered
Factory contract: can be used to create exchange contracts for any ERC20 token that does not already have one.
separate exchange contract for each ERC20 token --> hold reserves of both ETH and their associated ERC20.