adicionados os comentários para facilitar o entendimento