refactor zipentry