refactor zip