What are the causes of market failure and how can one solve them?