potentially optimizable to a few hundred megabytes