update initialization logic