we're caching the lookup fn to avoid multiple wrapping