update and code shrink