add csv download func