@Override
        public void addNode(Node node) {

                // Check to see if it is a valid node
                if (!node.validGameNode()) {
                        // Throw an error if an invalid node was attempted to be
                        // added
                        throw new IllegalArgumentException("Invalid node inserted.  Node must have its coordinates set and a valid number of edges.");
                }

                // Check to see if it is already inserted
                if (containsNodeAtCoordinates(node)) {
                        // Throw an error if the node has already been inserted
                        throw new IllegalArgumentException("There is already a node at the given coordinates");
                }

                // Add the node
                nodeMap.put(node.getCoordinates(), node);

                // Add all of the edges contained in the node
                for (Edge e : node.getAdjacent()) {
                        addEdge(e);
                }

        }