That brings up another point... something I had in mind that I need to research further (I don't yet know how to do it in C) --

on the asset loop, I would like to use one global loop. I think what I want to do is setup an array of assets inside the run() function, and then just use a pointer to that array in my sub-functions to recurse through. That would be ideal I think (rather than having 3 separate asset loops).