move event callback into Initialise function
improve AddParent/AddChild, add GetParents, and fix GetFilterValue to read from parent