void itemPickedUp(GameObject plObj)
    {
        smScript   = plObj.GetComponent <StatusManager> ();
        attManager = plObj.GetComponent <WhipAttackManager> ();
        wepManager = plObj.GetComponent <SubWeaponManager> ();

        switch (itemName)
        {
        case Globals.ItemName.Money_S:
        case Globals.ItemName.Money_M:
        case Globals.ItemName.Money_L:
            GameObject moneySE = Resources.Load(Globals.SEdir + "moneySE") as GameObject;
            Instantiate(moneySE, transform.position, Quaternion.identity);
            break;

        case Globals.ItemName.SmallHeart:
        case Globals.ItemName.LargeHeart:
            GameObject heartSE = Resources.Load(Globals.SEdir + "heartSE") as GameObject;
            Instantiate(heartSE, transform.position, Quaternion.identity);
            break;

        case Globals.ItemName.WhipUp:

        case Globals.ItemName.Dagger:

        case Globals.ItemName.Axe:

        case Globals.ItemName.HolyWater:

        case Globals.ItemName.StopWatch:
            GameObject upgradeSE = Resources.Load(Globals.SEdir + "upgradeSE") as GameObject;
            Instantiate(upgradeSE, transform.position, Quaternion.identity);
            break;


        case Globals.ItemName.Rosary:
            GameObject rosarySE = Resources.Load(Globals.SEdir + "rosarySE") as GameObject;
            Instantiate(rosarySE, transform.position, Quaternion.identity);
            break;

        case Globals.ItemName.BossHeart:

            GameObject deathSE = Resources.Load(Globals.SEdir + "WinMusic") as GameObject;
            Instantiate(deathSE, transform.position, Quaternion.identity);

            break;

        default:
            GameObject defaultSE = Resources.Load(Globals.SEdir + "heartSE") as GameObject;
            Instantiate(defaultSE, transform.position, Quaternion.identity);
            break;
        }

        switch (itemName)
        {
        case Globals.ItemName.Money_S:
            smScript.score += 100;
            Debug.Log("fetched small money");
            break;

        case Globals.ItemName.Money_M:
            smScript.score += 400;
            Debug.Log("fetched medium money");
            break;

        case Globals.ItemName.Money_L:
            smScript.score += 700;
            Debug.Log("fetched large money");
            break;

        case Globals.ItemName.SmallHeart:
            smScript.heartNum += 1;
            Debug.Log("fetched heart");
            break;

        case Globals.ItemName.LargeHeart:
            smScript.heartNum += 5;
            Debug.Log("fetched heart");
            break;

        case Globals.ItemName.WhipUp:
            if (attManager.whipLevel < 3)
            {
                attManager.UpgradWhip();
            }
            Debug.Log("fetched Morning Star, whip powered up");
            break;

        case Globals.ItemName.Rosary:

            Debug.Log("fetched Rosery, clear stage");


            GameObject[] allEnemy = GameObject.FindGameObjectsWithTag(Globals.EnemyTag);
            foreach (GameObject enemy in allEnemy)
            {
                OnWhipEvent whipScript = enemy.GetComponent <OnWhipEvent>();

                if (whipScript != null)
                {
                    whipScript.onWhipEnter();
                }
            }
            break;

        case Globals.ItemName.Dagger:
            wepManager.weaponPickedUp(Globals.SubWeapon.Dagger);
            break;

        case Globals.ItemName.Axe:
            wepManager.weaponPickedUp(Globals.SubWeapon.Axe);
            break;

        case Globals.ItemName.HolyWater:
            wepManager.weaponPickedUp(Globals.SubWeapon.HolyWater);
            break;

        case Globals.ItemName.StopWatch:
            wepManager.weaponPickedUp(Globals.SubWeapon.StopWatch);
            break;

        case Globals.ItemName.BossHeart:
            getBossHeart();
            break;

        case Globals.ItemName.ChickenLeg:
            smScript.playerHealth += 6;
            Mathf.Clamp(smScript.playerHealth, 0, Globals.maxBossHealth);
            break;

        default:
            break;
        }

        Debug.Log("Player picked Up");
        if (audio)
        {
            audio.Play();
        }
        Destroy(this.gameObject);
    }