Source: https://swt.informatik.uni-freiburg.de/teaching/WS2012-13/fm4j/Resources/Slides/lec10