comentada y refactoreada un poco