edited version - with maps