update & simplify