Does this have to be recursive?

When you add a new item; you can store all the datapoints at the time of creation.