Use map() instead of zip() so we can support non-square maps

Fixes #123