add zip operation functions