maybe shouldn't have a map like that
I am suspicious of this, but it seems to yield correct results