use external map structure