revisado para non consumo de memoria, incluín todolos free