//TODO Not the way it should work ... Initialize should asume a clean state
 public void Initialize(List <StandGenerator> standList)
 {
     this.standList = standList;
     if (standList != null)
     {
         foreach (StandGenerator sg in standList)
         {
             foreach (Transform sh in sg.transform)
             {
                 ShelfGenerator shg = sh.gameObject.GetComponent <ShelfGenerator>();
                 if (shg == null)
                 {
                     continue;
                 }
                 shg.RegisterOnItemAttachedCallback(OnProductAddedToShelf);
                 shg.RegisterOnItemDeattachedCallback(OnProdcutRemovedFromShelf);
                 shg.RegisterOnShelfClickedCallback(OnShelfClicked);
                 shg.RegisterOnChildProductClickedCallback(OnProductClickedInSimulation);
             }
         }
     }
 }