update according to recommendation (not finished, not tested)