https://alfredave.com/computer-system-components-explained/