Android recyclerview

Только начал изучать android, возникла проблема с recyclerview, при добавление нового элемента, все предыдущие становятся идентичными новому, к примеру создаю ворону - она создалась, далее медведя - на выходе получается уже 2 медведя и так далее, подскажите в чём проблема.

class MainActivity : AppCompatActivity(R.layout.activity_main) {
private val binding by viewBinding(ActivityMainBinding::bind)
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    val adapter = AnimalAdapter()
    binding.recycler.adapter = adapter
    val list = mutableListOf<Animal>()

    fun getKind(): Kind {
        if (binding.bird.isChecked)
            return Kind.BIRD
        if (binding.fish.isChecked)
            return Kind.FISH
        return Kind.MAMMAL
    }

    binding.add.setOnClickListener {
        val animal = Animal(getKind(), binding.setType.text, binding.setAge.text)
        adapter.add(animal)
    }
}

}

class AnimalAdapter: RecyclerView.Adapter<AnimalAdapter.AnimalHolder>() {
private val animalList = mutableListOf<Animal>()
class AnimalHolder(item:View):RecyclerView.ViewHolder(item) {
    val binding = AnimalItemBinding.bind(item)
}
@SuppressLint("NotifyDataSetChanged")
fun add(animal: Animal) {
    animalList.add(animal)
    notifyDataSetChanged()
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): AnimalHolder {
    val inflater = LayoutInflater.from(parent.context)
    val itemView = inflater.inflate(R.layout.animal_item, parent, false)
    return AnimalHolder(itemView)
}
@SuppressLint("NotifyDataSetChanged")
override fun onBindViewHolder(holder: AnimalHolder, position: Int) {
    val item = animalList[position]
    holder.binding.apply {
        basket.setImageResource(R.drawable.basket)
        avatar.setImageResource(
            when(item.type) {
                Kind.BIRD -> R.drawable.bird
                Kind.FISH -> R.drawable.fish
                Kind.MAMMAL -> R.drawable.mammal })
        view.text = item.view
        age.text = item.age.toString()
        basket.setOnClickListener {
            animalList.removeAt(position)
            notifyDataSetChanged()
        }
    }
}
override fun getItemCount(): Int {
    return animalList.size
}

}


Ответы (0 шт):