[revision] extract zip function