versão actualizada com comentários