public void fetch() {
        // add all start skeletons
        for (StorySkeleton sequel : start.getSequels()) {
            unvisited.add(sequel);
        }
        while (!unvisited.isEmpty()) {
            Story curr;
            try {
                curr = unvisited.poll().fetch();
            } catch (IOException e) {
                System.err.println("Could not fetch page.");
                System.err.println(e.getMessage());
                return;
            }
            stories.add(curr.getSkeleton());
            authors.add(curr.getSkeleton().getAuthor());
            for (StorySkeleton sequel : curr.getSequels()) {
                unvisited.add(sequel);
            }
        }
    }