public void PassengersOffBoarding(BusStop busStop,OutputFile outBusStopActivity,OutputFile screen)
    {
        //person getting off the bus
        Person got;
        //linklist iterator
        ListIterator iter = passengers.listIterator();

        //iterate all passangers on the bus
        while(iter.hasNext())
        {
            //get current person selected on the bus
            got = (Person)iter.next();
            
            //check if the person needs to get off the bus
            if(got.GetStopBusStop() == busStop.GetBusStopNumber())
            {
//set time person got off the bus                
got.SetOffBusTicks(this.firstTicks);  
screen.WriteToFile("Time:,"+GetFirstTicks()+", --> OFF"+", GetOff: "+ (got.GetStopBusStop()+1)+", Bus #"+GetBusNumber()+", person #"+got.GetPersonNumber()+", GetOn: "+ (got.GetStartBusStop()+1)+", Priority: "+got.GetPriority()+", PASSENGERS: "+ passengers.size());
if(verbose)
    System.out.println("Time:,"+GetFirstTicks()+", --> OFF"+", GetOff: "+ (got.GetStopBusStop()+1)+", Bus #"+GetBusNumber()+", person #"+(got.GetPersonNumber()+1)+", GetOn: "+ (got.GetStartBusStop()+1)+", Priority: "+got.GetPriority()+", PASSENGERS: "+ passengers.size());
//System.out.println("Time:"+GetFirstTicks()+" Bus #"+GetBusNumber()+", PASSENGERS: "+ passengers.size()+", person #"+got.GetPersonNumber()+", GetOff: "+ busStop.GetBusStopNumber());                
//write statistics to file
outBusStopActivity.WriteToFile((got.GetPersonNumber()+1)+","+got.GetFirstTicks()+","+(got.GetStartBusStop()+1)+","+(got.GetStopBusStop()+1)+","+got.GetOnBusTicks()+","+got.GetOffBusTicks()+","+got.GetWaitTime()+","+got.GetLeftByBus());

                //remove passenger
                iter.remove();
                //update total transported
                IncrementTotalPassangersTransported();
                //update passengersOnBoard counter
                Decrement();
                
            }
        }
    }