diff --git a/Assets/Scripts/Managers/QuestManager.cs b/Assets/Scripts/Managers/QuestManager.cs
index a9b7b094cebf74ba5302e5f1a4d277e832d5da6d..d6b4b7c1b1235005e1f537eb831a4c800d705053 100644
--- a/Assets/Scripts/Managers/QuestManager.cs
+++ b/Assets/Scripts/Managers/QuestManager.cs
@@ -20,11 +20,14 @@ public class QuestManager : MonoBehaviour
     [SerializeField] Text questText;
     [SerializeField] Canvas CompletedCanvas;
 
+    PlayerCurrency playerCurr;
+
     private void Awake()
     {
         currQuest = questList[0];
         CompletedCanvas.enabled = false;
         loadedNext = false;
+        playerCurr = GameObject.FindGameObjectWithTag("Player").GetComponent<PlayerCurrency>();
     }
 
     public Quest getCurrentQuest()
@@ -38,6 +41,7 @@ public class QuestManager : MonoBehaviour
         {
             if (CompletedCanvas.enabled == true)
             {
+                rewardPlayer();
                 CompletedCanvas.enabled = false;
                 Time.timeScale = 1;
                 if (lm.GetCurrLevel() < 3)
@@ -123,4 +127,11 @@ public class QuestManager : MonoBehaviour
         jenderalCount = 0;
         rajaCount = 0;
     }
+
+    void rewardPlayer()
+    {
+        Debug.Log("Player rewarded");
+        int reward = 200 * (lm.GetCurrLevel() +  1); 
+        playerCurr.add(reward);
+    }
 }
diff --git a/Assets/ShopManager.cs b/Assets/ShopManager.cs
index 118562dcdd628d6bd17e45cb76cbb423e6235404..3183df916ad01d6e5096646255dd92f813f40a19 100644
--- a/Assets/ShopManager.cs
+++ b/Assets/ShopManager.cs
@@ -68,6 +68,7 @@ public class ShopManager : MonoBehaviour {
 	
 	void Update()
 	{
+		balanceText.text = playerCurrency.Balance().ToString();
 		messageTimer -= Time.deltaTime;
 		if (isAccessible && Input.GetKeyDown(KeyCode.Space)) 
 		{
@@ -78,7 +79,6 @@ public class ShopManager : MonoBehaviour {
 			}
 
 			resetCanvas();
-			balanceText.text = playerCurrency.Balance().ToString();
 			showShop();
 			return;
 		} 
@@ -113,7 +113,8 @@ public class ShopManager : MonoBehaviour {
 			return;
 		}
 		playerCurrency.subtract(healingPetPrice);
-        Instantiate(healingPet, player.position, Quaternion.identity);     
+        GameObject pet = Instantiate(healingPet, player.position, Quaternion.identity);     
+		pet.transform.SetParent(player, false);
 	}
 
 	public void SpawnAttackingPet()
@@ -122,7 +123,8 @@ public class ShopManager : MonoBehaviour {
 			return;
 		}
 		playerCurrency.subtract(attackingPetPrice);
-		Instantiate(attackingPet, player.position, Quaternion.identity);
+		GameObject pet = Instantiate(attackingPet, player.position, Quaternion.identity);
+		pet.transform.SetParent(player, false);
 	}	
 
 	public void setAccessible(bool value)