Adicionei alguns comentários no codigo.