End of working line - looks like the problems with propagating changes in complex trees requires a rewrite using recursive condition checking  manipulating functions