a bit better, still horrible with large dataset, needs huge improvements