most of the logic behind updating the reps finished on the server side