Se añadieron comentarios para entender el codigo mejor