adapt to preload init