Here are some important parts of the design and architecture of the software.