I am glad your program is now working, it was your original question
that prompted my to make a program that uses the API.
Seems there are many ways to skin a cat and what you say to store the
pointer of the previous field is more efficient.
You mention debugging my program.
What bug did you find? I would like to correct it.
As you may guess I dont believe my code is 'dangerously inefficient'.
Yes my code is not the most efficient but it was mostly a demonstration
of how to process the API data, and as such it has succeeded.