abstract modification