Source: https://www.ida.liu.se/~TDDC78/labs/doc/report/TDDC78-report-outline.pdf