// Returns new child
        private DBNode LinkNewChildToGraph(DBNode node, IDBOperator op)
        {
            IDBSpaceState newState = op.Apply(module, node.State);

            newState.UpdateIsGoal(module);

            DBNode newNode = new DBNode(DBNode.NodeType.Dependency,
                                        newState, level);

            if (newNode.IsGoal)
            {
                goalCount += 1;
            }

            TreeSizeIncreased = true;
            nodeCount        += 1;

            // Graph bookkeeping
            node.Children.Add(newNode);

            module.RegisterNewNode(newNode, root);

            return(newNode);
        }