https://www.msdperformance.com/blog/custom_diagrams/1/