For some reason, "animalo" is not accepted in place of "besto." A puppy is indeed a "besto", but it is more generally an "animalo." "Besto" seems to not be used for birds, fish, etc. in Esperanto, reflecting the view in many parts of the world that they are not "animals." Many cultures don't consider their flesh as "meat." Travel is often tough for vegetarians due to this misunderstanding. "Animalo" is the broadest term for all animals.