explanation of Map