always create map and take a pointer to it. always pass map pointers to functions (so they can modify its contents inplace).