Not sure if this mechanism of PetState updating is the best, but it'll do for now