make abstract update