updates functionality