Source: https://chambreuil.com/public/doc/Ripper.pdf