Source: https://web.mit.edu/~yczeng/Public/WORKBOOK 1 FULL.pdf