This is a really excellent explanation. Thank you very
much. It can be tricky to keep track of names, scopes and
durations while programming but it is certainly harder when
you don't even fully understand what the various concepts
represent.
Maybe even worth putting somewhere like the tutorials
section?