move update logic to pet model