diff --git a/Makefile b/Makefile
index 17ba0fe..3a9ef3d 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,5 @@
 CC = gcc
-CCFLAGS = -Wall -std=c99 -pedantic
+CCFLAGS = -Wall -std=c99 -pedantic -g
 
 CLIENT=client
 SERVER=server
diff --git a/README.md b/README.md
index f047aad..7b3744a 100644
--- a/README.md
+++ b/README.md
@@ -10,7 +10,12 @@ BCSSocket (Bottler Client-Server Socket) es un sistema que...
 
 ## Requisitos <a name="requisitos"></a>
 
-...
+Debe instalar gcc y make. Estos se encuentran disponibles en el repositorio de la vasta mayoría de distribuciones de Linux/macOS.
+
+Debian/Ubuntu: `apt install gcc make`\
+macOS (con [homebrew](https://brew.sh/)): `brew install gcc make`
+
+Si tiene otra distribución consulte cómo hacerlo.
 
 ## Compilación <a name="compilación"></a>
 
diff --git a/challenges.c b/challenges.c
index 19629fb..cb9e3ed 100644
--- a/challenges.c
+++ b/challenges.c
@@ -1,5 +1,9 @@
+// This is a personal academic project. Dear PVS-Studio, please check it.
+// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
 #include "include/challenges.h"
 
+char too_easy = 'a';
+
 char genChallenge(FILE * stream, char ** output, challenge_t challenge) {
     printf("------------- DESAFIO -------------\n");
     printf("%s\n\n", challenge.message);
@@ -11,12 +15,12 @@ char genChallenge(FILE * stream, char ** output, challenge_t challenge) {
     printf("%s\n\n", challenge.question);
     
     size_t linecap = 0;
-    ssize_t linelen;
-
-    if ((linelen = getline(output, &linecap, stream)) < 0)
+    if (getline(output, &linecap, stream) < 0)
         printSystemError("Challenges: getline()");
 
-    return !strcmp(*output, challenge.flag);
+    int ans = strcmp(*output, challenge.flag);
+    // free(*output);
+    return !ans;
 }
 
 void writeChallenge() {
@@ -68,6 +72,9 @@ void quineChallenge() {
             printf("La respuesta es chin_chu_lan_cha\n");
         else
             printf("\ndiff encontró diferencias.\n");
+
+        if (system("rm quine") < 0)
+            printSystemError("Challenges: system()");
     }
     else
         printf("\nENTER para reintentar.\n");
@@ -76,7 +83,6 @@ void quineChallenge() {
 void gdbme(char * output) {
     if (getpid() == 0x12345678) {
         *output = 1;
-        return;
     }
     else *output = 0;
 }
diff --git a/client.c b/client.c
index f8319a8..cac786e 100644
--- a/client.c
+++ b/client.c
@@ -1,3 +1,5 @@
+// This is a personal academic project. Dear PVS-Studio, please check it.
+// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
 #include "include/client.h"
 
 int main(int argc, char *argv[]) {
diff --git a/errors.c b/errors.c
index 8752803..dd8ed0a 100644
--- a/errors.c
+++ b/errors.c
@@ -1,3 +1,5 @@
+// This is a personal academic project. Dear PVS-Studio, please check it.
+// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
 #include "include/errors.h"
 
 void printError(char * string) {
diff --git a/include/challenges.h b/include/challenges.h
index d7d51e4..a42626a 100644
--- a/include/challenges.h
+++ b/include/challenges.h
@@ -27,6 +27,4 @@ void questionChallenge();
 void quineChallenge();
 void gdbChallenge();
 
-char too_easy = 'a';
-
 #endif
\ No newline at end of file
diff --git a/quine.c b/quine.c
index c86c7ce..9927c54 100644
--- a/quine.c
+++ b/quine.c
@@ -1 +1,3 @@
+// This is a personal academic project. Dear PVS-Studio, please check it.
+// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
 main() { char *s="main() { char *s=%c%s%c; printf(s,34,s,34,10); }%c"; printf(s,34,s,34,10); }
diff --git a/server.c b/server.c
index 113bb54..e9b97fb 100644
--- a/server.c
+++ b/server.c
@@ -1,3 +1,5 @@
+// This is a personal academic project. Dear PVS-Studio, please check it.
+// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
 #include "include/server.h"
 
 int main(int argc, char *argv[]) {
@@ -52,11 +54,10 @@ void startChallenge(int fd) {
             printf("Respuesta incorrecta: %s\n", output);
             sleep(TIME_SLEEP);
         }
+        free(output);
     }
 
-    //fclose(stream);
-    free(output);
-    free(stream);
+    fclose(stream);
 
     return;
 }
\ No newline at end of file