why set the vendor every time the user location is updated? also, you're not saving this change anywhere...