add update functions