Source: https://inigem.ugent.be/bluej/slides-2.pdf