mapsurf surfgen impl