why don't you preallocate rather than use lists?