added numZoomLevels to make sure the max zoom works, still not working for min zoom level. might give up except otherwise inspired