modify while