Source: https://www-users.cse.umn.edu/~kauffman/2021/06-assembly-basics.pdf