Tenemos que separar la lógica de las ventanas. He añadido comentarios
con //TODO en zonas en las que tengo dudas o creo que podríamos cambiar
algo