Estou reutilizando esse algoritmo, do meu projeto antigo, provisóriamente pois acredito que não estou usando boas práticas