@Override
    public void run() {
        for (Citation c : citations.getCitations()) {
            io.println(c.getId() + ": " + c.getTitle());
        }
        
        Integer command = -5;
        try {
            command = io.getInteger("Give id of the article to tag (or -1 to cancel): ");
        }
        catch (NumberFormatException e) {
            System.out.println("Error: id's are integers.");
        }
        
        if (command >= 0) {
            
            Citation c = null;
            try {
                c = citations.getCitation(command);
            } catch (IllegalArgumentException e) {
                System.out.println(e.getMessage() + "\nTagging cancelled.");
                return;
            }

            String tag = io.getString("Type tag: ");

            if (c.addTag(tag)) {
                io.println("Citation was tagged succesfully!");
            } else {
                io.println("Citation already contains this tag!");
            }
        } else {
            io.println("Tagging cancelled.");
        }
    }