some structuring
imported from zip