- avoid unnecessary mallocs by having a first alloc to do th ework.
we generate several files automatically.