// Add Barrier
		private void AddBarrier(IPoint objPoint)
		{
			// project to Routing projection
			objPoint.Project(m_objSpatialReference);

			// add point from shape to Barriers
			ISMRouterPoint objSMPoint = null;
			objSMPoint = new SMRouterPointClass();

			objSMPoint.X = objPoint.X;
			objSMPoint.Y = objPoint.Y;

			ISMNetBarrier objBarrier = null;
			objBarrier = new SMNetBarrierClass();

			objBarrier.BarrierID = m_nBarriersCount;
			objBarrier.Point = objSMPoint as SMRouterPointClass;

			try
			{
				m_objRouter.Barriers.Add(objBarrier as SMNetBarrier);
			}
			catch (Exception ex)
			{
				m_nBarriersIgnoredCount = m_nBarriersIgnoredCount + 1;
			}

			m_nBarriersCount = m_nBarriersCount + 1;
		}
		// Creates Stop by Stop Point, Index and Description and adds it to Stops collection
		private void CreateStop(SMRouter objRouter, string strAddress, string strCity, string strState, string strCode, SMStopsCollection objStopsCol, int nID)
		{

			// geocode point
			IPoint objPoint = new PointClass();
			objPoint = GeocodeAddress(strAddress, strCity, strState, strCode);

			if (objPoint.IsEmpty)
					throw new Exception("Cannot geocode address.");

			// project point
			objPoint.Project(m_objSpatialReference);

			// create and initialize router point    
			SMRouterPoint objRouterPoint = null;
			objRouterPoint = new SMRouterPointClass();

			objRouterPoint.X = objPoint.X;
			objRouterPoint.Y = objPoint.Y;

			// create flag    
			ISMFlagCreator2 objFlagCreator2 = null;
			objFlagCreator2 = objRouter.FlagCreator as ISMFlagCreator2;
			if (objFlagCreator2 != null)
					objFlagCreator2.SearchTolerance = 5;

			SMFlag objFlag = null;
			objFlag = objRouter.FlagCreator.CreateFlag(objRouterPoint);

			// create and initialize stop    
			SMStop objStop = null;
			objStop = new SMStop();
			objStop.StopID = nID;
			objStop.Duration = 0;
			objStop.Flag = objFlag;
			objStop.Description = GetAddressString(strAddress, strCity, strState, strCode);

			objStopsCol.Add(objStop);
		}