revised to map_canvas