massive refactor to simplify node children