https://9dok.net/document/y4w4jjn9-and-abstractions.html