diff --git a/Assets/Scenes/MainScene.meta b/Assets/Scenes/MainScene.meta
new file mode 100644
index 0000000000000000000000000000000000000000..fad139c12cfcbabc8dcc5959d24c3f7fab5f775b
--- /dev/null
+++ b/Assets/Scenes/MainScene.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 829c46be4b50d504a8fd053e72cf24e3
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Scenes/MainScene.unity b/Assets/Scenes/MainScene.unity
index 11566e3a3791ba65d7b0dadc85809c658b7b76e9..ff8f3a96dcecd92004ea422bf33be39f2e43a253 100644
--- a/Assets/Scenes/MainScene.unity
+++ b/Assets/Scenes/MainScene.unity
@@ -1344,8 +1344,10 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
   target: {fileID: 0}
   move_to: {fileID: 0}
+  max_amount: 10
   amount: 0
   home: {fileID: 471348698}
+  resource: {fileID: 0}
   speed: 1
 --- !u!61 &932290493
 BoxCollider2D:
@@ -1473,126 +1475,6 @@ Transform:
   m_Father: {fileID: 0}
   m_RootOrder: 10
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!1 &1379725508
-GameObject:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  serializedVersion: 6
-  m_Component:
-  - component: {fileID: 1379725511}
-  - component: {fileID: 1379725510}
-  - component: {fileID: 1379725509}
-  - component: {fileID: 1379725512}
-  m_Layer: 0
-  m_Name: Tree (2)
-  m_TagString: Resource
-  m_Icon: {fileID: 0}
-  m_NavMeshLayer: 0
-  m_StaticEditorFlags: 0
-  m_IsActive: 1
---- !u!114 &1379725509
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 1379725508}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: bad3649e66714d14d94d87cd3e47c1a1, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
-  Amount: 20
---- !u!212 &1379725510
-SpriteRenderer:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 1379725508}
-  m_Enabled: 1
-  m_CastShadows: 0
-  m_ReceiveShadows: 0
-  m_DynamicOccludee: 1
-  m_MotionVectors: 1
-  m_LightProbeUsage: 1
-  m_ReflectionProbeUsage: 1
-  m_RenderingLayerMask: 1
-  m_RendererPriority: 0
-  m_Materials:
-  - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
-  m_StaticBatchInfo:
-    firstSubMesh: 0
-    subMeshCount: 0
-  m_StaticBatchRoot: {fileID: 0}
-  m_ProbeAnchor: {fileID: 0}
-  m_LightProbeVolumeOverride: {fileID: 0}
-  m_ScaleInLightmap: 1
-  m_PreserveUVs: 0
-  m_IgnoreNormalsForChartDetection: 0
-  m_ImportantGI: 0
-  m_StitchLightmapSeams: 0
-  m_SelectedEditorRenderState: 0
-  m_MinimumChartSize: 4
-  m_AutoUVMaxDistance: 0.5
-  m_AutoUVMaxAngle: 89
-  m_LightmapParameters: {fileID: 0}
-  m_SortingLayerID: 0
-  m_SortingLayer: 0
-  m_SortingOrder: 0
-  m_Sprite: {fileID: 21300000, guid: 473e801b3bc9651409881d3f975c23ef, type: 3}
-  m_Color: {r: 1, g: 1, b: 1, a: 1}
-  m_FlipX: 0
-  m_FlipY: 0
-  m_DrawMode: 0
-  m_Size: {x: 1.28, y: 1.28}
-  m_AdaptiveModeThreshold: 0.5
-  m_SpriteTileMode: 0
-  m_WasSpriteAssigned: 1
-  m_MaskInteraction: 0
-  m_SpriteSortPoint: 0
---- !u!4 &1379725511
-Transform:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 1379725508}
-  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
-  m_LocalPosition: {x: 2.87, y: -1.7186036, z: -0.1}
-  m_LocalScale: {x: 1, y: 1, z: 1}
-  m_Children: []
-  m_Father: {fileID: 0}
-  m_RootOrder: 20
-  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!61 &1379725512
-BoxCollider2D:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 1379725508}
-  m_Enabled: 1
-  m_Density: 1
-  m_Material: {fileID: 0}
-  m_IsTrigger: 1
-  m_UsedByEffector: 0
-  m_UsedByComposite: 0
-  m_Offset: {x: 0, y: 0}
-  m_SpriteTilingProperty:
-    border: {x: 0, y: 0, z: 0, w: 0}
-    pivot: {x: 0.5, y: 0.5}
-    oldSize: {x: 1.28, y: 1.28}
-    newSize: {x: 1.28, y: 1.28}
-    adaptiveTilingThreshold: 0.5
-    drawMode: 0
-    adaptiveTiling: 0
-  m_AutoTiling: 0
-  serializedVersion: 2
-  m_Size: {x: 1.28, y: 1.28}
-  m_EdgeRadius: 0
 --- !u!1 &1667231311
 GameObject:
   m_ObjectHideFlags: 0
@@ -1682,8 +1564,8 @@ GameObject:
   m_Component:
   - component: {fileID: 1699889077}
   - component: {fileID: 1699889076}
-  - component: {fileID: 1699889075}
   - component: {fileID: 1699889078}
+  - component: {fileID: 1699889075}
   m_Layer: 0
   m_Name: Tree (1)
   m_TagString: Resource
@@ -1700,10 +1582,9 @@ MonoBehaviour:
   m_GameObject: {fileID: 1699889074}
   m_Enabled: 1
   m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: bad3649e66714d14d94d87cd3e47c1a1, type: 3}
+  m_Script: {fileID: 11500000, guid: cb94cfa918a502245a4097b1749281ad, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  Amount: 0
 --- !u!212 &1699889076
 SpriteRenderer:
   m_ObjectHideFlags: 0
diff --git a/Assets/Scripts/City.cs b/Assets/Scripts/City.cs
index 8cb47e3da408a2bce610a8336315573397eba7e1..9ceb0a4efc073e8532b2c3b75ec2a3f1257a4c3e 100644
--- a/Assets/Scripts/City.cs
+++ b/Assets/Scripts/City.cs
@@ -17,7 +17,7 @@ public class City : MonoBehaviour
      *  Kayttaa resurssia r, maaran 'amount' verran (amount >= 0).
      *  Voidaan kayttaa maximissaan sen verran resursseja mita niita on kaytossa.
      */
-    public void useResource(Resource r, int amount)
+    public void UseResource(Resource r, int amount)
     {
         if (amount<0)
         {
@@ -26,12 +26,13 @@ public class City : MonoBehaviour
         ResourcePool[] lista = gameObject.GetComponents<ResourcePool>();
         for (int i = 0; i < lista.Length; i++)
         {
-            if (lista[i].getResource().GetType().Equals(r.GetType()))
+            if (lista[i].GetResource().GetType().Equals(r.GetType()))
             {
-                lista[i].useResource(amount);
+                lista[i].UseResource(amount);
             }
         }
     }
+   
 
     /** 
 *  Lisaa resurssia r, maaran 'amount' verran (amount >= 0).
@@ -39,7 +40,7 @@ public class City : MonoBehaviour
 *  ts. jos nykyinen resurssimaara + lisatty maara >= maximikapasiteetti
 *  niin uusi resurssimaara = maximikapasiteetti
 */
-    public void addResource(Resource r, int amount)
+    public void AddResource(Resource r, int amount)
     {
         if (amount<0)
         {
@@ -49,14 +50,26 @@ public class City : MonoBehaviour
        
         for (int i = 0; i < lista.Length; i++)
         {
-            if (lista[i].getResource().GetType().Equals(r.GetType()))
+            if (lista[i].GetResource().GetType().Equals(r.GetType()))
             {
-                lista[i].addResource(amount);
+                lista[i].AddResource(amount);
                 return;
             }
         }
         ResourcePool respool = gameObject.AddComponent<ResourcePool>();
-        respool.setResource(r);
-        respool.addResource(amount);
+        respool.SetResource(r);
+        respool.AddResource(amount);
+    }
+
+    /**
+     * Lisaa kaikkien resurssipoolien maxKapasiteettia x:n verran
+     */
+    public void IncreaseCapacity(int x)
+    {
+        ResourcePool[] lista = gameObject.GetComponents<ResourcePool>();
+        for (int i = 0; i < lista.Length; i++)
+        {
+            lista[i].SetCapacity(x);
+        }
     }
 }
diff --git a/Assets/Scripts/Collector.cs b/Assets/Scripts/Collector.cs
index bc7d9aac2999054cc6a84bab00ba89289a72eacb..116ab820eb7566946492e5e388db4949f3051dcd 100644
--- a/Assets/Scripts/Collector.cs
+++ b/Assets/Scripts/Collector.cs
@@ -7,15 +7,17 @@ public class Collector : MonoBehaviour
     // Start is called before the first frame update
     void Start()
     {
-        
+
     }
-    
+
     [SerializeField]
     private GameObject target;
 
     [SerializeField]
     private GameObject move_to;
 
+    [SerializeField]
+    private int max_amount = 10;
 
     [SerializeField]
     private int amount;
@@ -23,6 +25,8 @@ public class Collector : MonoBehaviour
     [SerializeField]
     private GameObject home;
 
+    [SerializeField]
+    private Resource resource;
     public float speed = 1;
 
 
@@ -57,15 +61,27 @@ public class Collector : MonoBehaviour
     }
     private void OnTriggerEnter2D(Collider2D collision)
     {
-        Debug.Log(collision.gameObject.name);
+
         if (collision.gameObject.tag == "Resource")
+        {
+            //Amount of resources worker is carrying right now
+            this.amount = collision.gameObject.GetComponent<Resource>().extractResource(this.max_amount);
+            //Gives target resource to resource variable
+            this.resource = this.target.GetComponent<Resource>();
             StartCoroutine("goHome");
+        }
         else if (collision.gameObject.name == "City")
+        {
+            //resets amount and resource variables
+            this.amount = 0;
+            this.resource = null;
             MoveTo(this.target);
+        }
     }
     IEnumerator goHome()
     {
         yield return new WaitForSeconds(4);
         MoveTo(home);
     }
+
 }
diff --git a/Assets/Scripts/ResourcePool.cs b/Assets/Scripts/ResourcePool.cs
index da4ec052a8c32be22dfb77681c135f6b8517bb96..c4d6843f04a4841d78f252e0cb0f6c297f7e6037 100644
--- a/Assets/Scripts/ResourcePool.cs
+++ b/Assets/Scripts/ResourcePool.cs
@@ -18,19 +18,19 @@ public class ResourcePool : MonoBehaviour
     void Start()
     {
     }
-    public void setResource(Resource r)
+    public void SetResource(Resource r)
     {
         this.r = r;
     }
 
-    public Resource getResource()
+    public Resource GetResource()
     {
         return r;
     }
     /**
      * Kayttaa resurssia maaran X verran
      */
-    public void useResource(int x)
+    public void UseResource(int x)
     {
         if (this.amount - x <= 0)
         {
@@ -44,7 +44,7 @@ public class ResourcePool : MonoBehaviour
     /**
      * Lisaa resurssia maaran X verran
      */
-    public void addResource(int x)
+    public void AddResource(int x)
     {
         if (this.amount + x >= this.maxCapacity)
         {
@@ -55,4 +55,8 @@ public class ResourcePool : MonoBehaviour
             this.amount += x;
         }
     }
+    public void SetCapacity(int x)
+    {
+        this.maxCapacity += x;
+    }
 }