This app is not perfect but I want to make one more interesting surprise
As you can see - no more extern app... :)
We will optimize it more...
try to keep all declarations in one or two *.h files
Program evrything with reusability in mind...
Plan growing of your all the time...
Write your own notes here and put some useful commented code
Wait for more notes from me :) ...

I noticed one your mistake that you tend to think and want to install callbacks 
(and access methods) from down up or from inside out. 
It should be opposite way, IMHO. I mean, you should imagine your classes 
(or instances) like russian matrioshka doll, if you know such term. 
And in most cases you should start your access analysis from the biggest 
doll then going inside to the smallest ones (members or children). 
This way you find then right place for your callback assignment.
In paralel you can think about your callback function body 
(not its place!), and make it even before you install a callback and test 
it with one more temporary function.

