/// <summary>
        /// Add new object to pool
        /// </summary>
        /// <param name="poolObject">Pool objects interface</param>
        public void AddPoolObject(KS_IPoolObject poolObject)
        {
            KS_IPoolObject data;

            if (!pool.TryGetValue(poolObject._Id, out data))
            {
                // check pooling limits for

                Debug.Log("A: " + GetAmountOfType(poolObject.PoolSettings().tag) + " T: " + poolObject.PoolSettings().poolLimit);

                if (GetAmountOfType(poolObject.PoolSettings().tag) > (poolObject.PoolSettings().poolLimit - 1))
                {
                    RemovePoolItem(poolObject.GameObject);
                    return;
                }
                else
                {
                    poolObject.GameObject.transform.parent = _inactive.transform;

                    pool.Add(poolObject._Id, poolObject);
                    poolObject.GameObject.SetActive(false);
                }
            }
            else
            {
            }
        }
    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Q) || KS_Input.GetKeyDown(KS_Input.DS4ButtonToKey(DS4KeyCode.Square)))
        {
            Spawn();
        }

        if (Input.GetKeyDown(KeyCode.F) || KS_Input.GetKeyDown(KS_Input.DS4ButtonToKey(DS4KeyCode.Triangle)))
        {
            ClearPool();
        }

        string text = "";

        for (int i = 0; i < spawnObjects.Length; i++)
        {
            KS_IPoolObject o = spawnObjects[i].GetComponent <KS_IPoolObject>();

            text += o.PoolSettings().tag + ": Active in scene (" + GetAmountOfType(o.PoolSettings().tag)
                    + ") ---- In pool (" + pool.GetAmountOfType(o.PoolSettings().tag) + ")\n";
        }

        wallText.text = text;
    }