         return options
     }
     
-    private func factoryMapRect() -> MKMapRect
+    private func factoryMapRect(
+        renderRect:MCreateSaveRenderRect) -> MKMapRect
     {
         let mapX:Double = tileToMapPoint(
-            tilePoint:self.minX)
+            tilePoint:renderRect.x)
         let mapY:Double = tileToMapPoint(
-            tilePoint:self.minY)
-        let lastTileX:Double = tileToMapPoint(
-            tilePoint:self.maxX)
-        let lastTileY:Double = tileToMapPoint(
-            tilePoint:self.maxY)
-        let maxX:Double = lastTileX + tileMapSize
-        let maxY:Double = lastTileY + tileMapSize
+            tilePoint:renderRect.y)
+        let mapWidth:Double = tileToMapPoint(
+            tilePoint:renderRect.width)
+        let mapHeight:Double = tileToMapPoint(
+            tilePoint:renderRect.height)
         
         let mapRect:MKMapRect = MKMapRectMake(
             mapX,
             mapY,
-            tileMapSize,
-            tileMapSize)
+            mapWidth,
+            mapHeight)
         
         return mapRect
     }

    }
    
    private func factoryOptions(
        rect:MCreateSaveRenderRect) -> MKMapSnapshotOptions
    {
        let mapRect:MKMapRect = factoryMapRect()
        
        let options:MKMapSnapshotOptions = MKMapSnapshotOptions()
        options.mapRect = mapRect

    
    func factoryRender() -> MCreateSaveRender
    {
        let renderRect:MCreateSaveRenderRect = factoryRenderRect()
        let options:MKMapSnapshotOptions = factoryOptions(
            renderRect:renderRect)
        
        let render:MCreateSaveRender = MCreateSaveRender(
            zoom:zoom,
            options:options,
            rect:renderRect)
        
        return render
    }
