possibly heading down the wrong track - look to clarify the mutation of nodes/children in algorithms