NPLM could implement shared or thread-local cache; wrapper works with either.