added sm._update()