we must put lock around dispatch table initialization