Source: http://www.aleax.it/gdd_pydp.pdf