This avoids calling linear lookup 100s of time when dealing with real-life character. Still some tweaks possible.