diff --git a/Assets/Prefab/Flag.prefab b/Assets/Prefab/Flag.prefab
new file mode 100644
index 0000000000000000000000000000000000000000..ce84a5a726df5d5e6f75a32f0efc449b91fd28a6
--- /dev/null
+++ b/Assets/Prefab/Flag.prefab
@@ -0,0 +1,122 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &8796312832300166883
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 3911026953838394632}
+  - component: {fileID: 7981019715402497320}
+  - component: {fileID: 3689336998828211151}
+  - component: {fileID: 4443572787190976141}
+  m_Layer: 0
+  m_Name: Flag
+  m_TagString: Flag
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &3911026953838394632
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8796312832300166883}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 4.078, y: 2.369, z: -1.0712891}
+  m_LocalScale: {x: 0.3136983, y: 0.3136983, z: 0.3136983}
+  m_Children: []
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &7981019715402497320
+SpriteRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8796312832300166883}
+  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: dd3f1a90ef7844947ae3599531fcd6d2, type: 3}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_FlipX: 0
+  m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 0.2, y: 0.2}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
+  m_SpriteSortPoint: 0
+--- !u!114 &3689336998828211151
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8796312832300166883}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 1c028ba564ee8304e9c41111c8912ebe, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  Worker: {fileID: 0}
+--- !u!61 &4443572787190976141
+BoxCollider2D:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8796312832300166883}
+  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.78, y: 1.44}
+    newSize: {x: 0.2, y: 0.2}
+    adaptiveTilingThreshold: 0.5
+    drawMode: 0
+    adaptiveTiling: 0
+  m_AutoTiling: 0
+  serializedVersion: 2
+  m_Size: {x: 1.78, y: 1.44}
+  m_EdgeRadius: 0
diff --git a/Assets/Prefab/Flag.prefab.meta b/Assets/Prefab/Flag.prefab.meta
new file mode 100644
index 0000000000000000000000000000000000000000..b52c8108c0461fb3038ea4687dc08a5834f4764f
--- /dev/null
+++ b/Assets/Prefab/Flag.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 5cba37404bc15114b929eea3f4ec84f3
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Prefab/worker.prefab b/Assets/Prefab/worker.prefab
index d6506cee223d065f8f7b5dd080b1e6bd4dd3a107..c7c68fbb4ed920d43488ee2da1dfecd2da8c8d05 100644
--- a/Assets/Prefab/worker.prefab
+++ b/Assets/Prefab/worker.prefab
@@ -14,7 +14,7 @@ GameObject:
   - component: {fileID: 548039319383633028}
   - component: {fileID: 548039319383633031}
   m_Layer: 0
-  m_Name: Worker
+  m_Name: worker
   m_TagString: Untagged
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
@@ -101,6 +101,7 @@ MonoBehaviour:
   home: {fileID: 7607310651946833762, guid: 118ed7528555d45418acb5a87b330000, type: 3}
   resource: {fileID: 0}
   speed: 1
+  flag: {fileID: 8796312832300166883, guid: 5cba37404bc15114b929eea3f4ec84f3, type: 3}
 --- !u!61 &548039319383633028
 BoxCollider2D:
   m_ObjectHideFlags: 0
diff --git a/Assets/Scripts/Collector.cs b/Assets/Scripts/Collector.cs
index d772789090ed0174bacc40f72d1e189363aabf1e..56f8cae6af3e7a7dc68eafd684907271a70bca04 100644
--- a/Assets/Scripts/Collector.cs
+++ b/Assets/Scripts/Collector.cs
@@ -18,11 +18,15 @@ public class Collector : MonoBehaviour
 
     [SerializeField]
     private GameObject home;
-
+    
     [SerializeField]
     private Resource resource;
     public float speed = 1;
 
+    [SerializeField]
+    private GameObject target_flag;
+
+    public GameObject flag;
     // Start is called before the first frame update
     void Start()
     {
@@ -37,7 +41,7 @@ public class Collector : MonoBehaviour
     {
         this.move_to = target;
     }
-
+    
     // Update is called once per frame
     void Update()
     {
@@ -49,8 +53,12 @@ public class Collector : MonoBehaviour
             RaycastHit2D hit = Physics2D.Raycast(mousePos2D, Vector2.zero);
             if (hit.collider != null)
             {
+                DestroyImmediate(target_flag);
+                target_flag = Instantiate(flag, hit.point, Quaternion.identity);
+                target_flag.GetComponent<Flag>().SetWorker(this.gameObject);
                 SetTarget(hit.collider.gameObject);
-                MoveTo(hit.collider.gameObject);
+                if(resource == null || hit.collider.gameObject.tag == "Home")
+                    MoveTo(hit.collider.gameObject);
             }
         }
         if (move_to != null)
@@ -59,15 +67,28 @@ public class Collector : MonoBehaviour
     private void OnTriggerEnter2D(Collider2D collision)
     {
 
-        if (collision.gameObject.tag == "Resource")
+        if (target_flag != null)
         {
-            //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");
+            if(collision.gameObject.transform.position == target_flag.transform.position) { 
+                if(resource == null)
+                {
+                    /*if(target.GetComponent<Resource>().vie_tavaraa())
+                    {
+                        
+                    }
+                    else
+                    {*/
+                        //Amount of resources worker is carrying right now
+                        this.amount = target.GetComponent<Resource>().extractResource(this.max_amount);
+                        //Gives target resource to resource variable
+                        this.resource = this.target.GetComponent<Resource>();
+                    //}
+                   
+                }
+                StartCoroutine("goHome");
+            }
         }
-        else if (collision.gameObject.tag == "Home" && this.resource != null)
+         if (collision.gameObject.tag == "Home" && this.resource != null)
         {
             //resets amount and resource variables
             collision.gameObject.GetComponent<City>().AddResource(this.resource, this.amount);
@@ -80,6 +101,8 @@ public class Collector : MonoBehaviour
     IEnumerator goHome()
     {
         yield return new WaitForSeconds(4);
+        if(target == null)
+            DestroyImmediate(target_flag);
         MoveTo(home);
     }
 
diff --git a/Assets/Scripts/Flag.cs b/Assets/Scripts/Flag.cs
new file mode 100644
index 0000000000000000000000000000000000000000..fd1157d400e79126c643310a113f5217476426a6
--- /dev/null
+++ b/Assets/Scripts/Flag.cs
@@ -0,0 +1,18 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class Flag : MonoBehaviour
+{
+    [SerializeField]
+    private GameObject Worker;
+
+    public void SetWorker(GameObject w)
+    {
+        this.Worker = w;
+    }
+    public GameObject GetWorker()
+    {
+        return this.Worker;
+    }
+}
diff --git a/Assets/Scripts/Flag.cs.meta b/Assets/Scripts/Flag.cs.meta
new file mode 100644
index 0000000000000000000000000000000000000000..81aa7e9625e914f41337c7c67f0eb5ebfce1b2c1
--- /dev/null
+++ b/Assets/Scripts/Flag.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 1c028ba564ee8304e9c41111c8912ebe
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Sprites/flag.png b/Assets/Sprites/flag.png
new file mode 100644
index 0000000000000000000000000000000000000000..09ada3428cabb1a3b13a42f8c8d5f2d46c493488
Binary files /dev/null and b/Assets/Sprites/flag.png differ
diff --git a/Assets/Sprites/flag.png.meta b/Assets/Sprites/flag.png.meta
new file mode 100644
index 0000000000000000000000000000000000000000..6e783e839844da15123f8acaed294f4e8c7db059
--- /dev/null
+++ b/Assets/Sprites/flag.png.meta
@@ -0,0 +1,88 @@
+fileFormatVersion: 2
+guid: dd3f1a90ef7844947ae3599531fcd6d2
+TextureImporter:
+  fileIDToRecycleName: {}
+  externalObjects: {}
+  serializedVersion: 9
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: -1
+    aniso: -1
+    mipBias: -100
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  platformSettings:
+  - serializedVersion: 2
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 4f0b75042eebcc842953244e7cf3cc95
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: