better dynamic sizing for map