fix a type checker issue, cleaner zip implementation