The design of financial systems: An overview