https://courses.grainger.illinois.edu/ece310/su2022/template.pdf