si_presentlist could use a single malloc instead of two :)