fix user state updates (terribly inefficient though..)