speedup for symbol lookup, should be O(n) to O(1)