Comentarios añadidos para intentar ayudar a la lectura del código.