Adicionados comentários inline para deixar o código mais claro ao iniciante