first working version based on KZip