public String generate() {
        StringBuilder report = new StringBuilder();
        report.append(head()).append("\n");
        report.append(body()).append("\n");
        report.append(footer());

        if (isSelfEvaluation) {
            report.append("\n");
            report.append(selfEvaluation());
        }

        return report.toString();
    }