add support for generating canonical maps

mostly just a copy of virtual maps