We should probably consider writing output to the VCF while we're running and not keep everything in memory until the end