https://1cpp.blogspot.com/2019/08/21-structure-of-program_1.html