https://andreanum.org/slots-in-c/