Source: https://www.lexjansen.com/nesug/nesug08/ff/ff06.pdf