added zipping and unzipping