function p update