Source: https://www.math.lsa.umich.edu/~wfulton/CurveBook.pdf