using generic to make unzip