updated initialization