updated update functions