https://aadsm.org/docs/JDSM.1.1.27.pdf