this version can stand tests, problem with deleting nodes/children unsolved yet