core initialization