+update and init