change initialization logic