ah, ok.  I have not looked at this code in a while.  I think it would be clearer to not initialize `track_lst` at all (that is part of what confused me) or use `track_lst=None`.

This does raise the issue for streaming that elements are never removed (and they never release their references to their constituent `Point` objects so you aren't gaining anything by switching to using the generator (from a memory foot print).  I think it would make more sense to have the generator yield newly created tracks and to drop internal references to tracks that have died to allow python to re-claim the space. 

This is not a use case I was thinking of when I wrote this, but I have become convinced it should have been.