restructure init procedure II