add Map.c and tests of Map