https://datalog.codingforstudent.com/foil-defined-in-just-3-words/