avoid repeated initialization check