Object Pooling Script from Tutorial doesn't work for me

I’ve followed this Object Pooling Tutorial on YouTube, but my Outcome Script gave me this Error:

Assets/Scripts/ObjectPooling/ObjectPooler.cs(5,14): error CS0101: The namespace global::' already contains a definition for ObjectPooler’

Please tell me, what’s wrong with my Version of the Script.
The erroneous outcome C# Script looks like this:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ObjectPooler : MonoBehaviour
    public class Pool
        public string tag;
        public GameObject prefab;
        public int size;

    #region Singleton

    public static ObjectPooler Instance;

    private void Awake()
        Instance = this;


    public List<Pool> pools;
    public Dictionary<string, Queue<GameObject>> poolDictionary;

    // Start is called before the first frame update
    void Start()
        poolDictionary = new Dictionary<string, Queue<GameObject>>();

        foreach (Pool pool in pools)
            Queue<GameObject> objectPool = new Queue<GameObject>();

            for (int i = 0; i < pool.size; i++)
                GameObject obj = Instantiate(pool.prefab);

            poolDictionary.Add(pool.tag, objectPool);

    public GameObject SpawnFromPool (string tag, Vector3 position, Quaternion rotation)
        if (!poolDictionary.ContainsKey(tag))
            Debug.LogWarning("Pool with tag " + tag + " doesn't exist.");
            return null;

        GameObject objectToSpawn = poolDictionary[tag].Dequeue();

        objectToSpawn.transform.position = position;
        objectToSpawn.transform.rotation = rotation;


        return objectToSpawn;

Have you accidentally created two copies of the ObjectPooler script? That’s what the error message is implying. Or is there another class named “ObjectPooler” somewhere in the project?