task fixed
reuse csv reading code