static void Main(string[] args)
        {
            Console.WriteLine("Train track!");

            var bulider      = new RailwayBuilder();
            var firstStation = bulider.BuildStation("Gothenburg", true);
            var endStation   = bulider.BuildStation("Alingsås", true);

            bulider.BuildRail(firstStation, endStation);

            var vasttåg = Factory.BuildTrain(5, "Västtåg", 120, false, currentPosition: firstStation);

            var plan = new TrainPlanner(vasttåg)
                       .AddStop("11:00", firstStation)
                       .AddStop("11:30", endStation)
                       .ToPlan();



            Console.ReadLine();

            // Step 1:
            // Parse the traintrack (Data/traintrack.txt) using ORM (see suggested code)
            // Parse the trains (Data/trains.txt)

            // Step 2:
            // Make the trains run in treads
        }
        static void Main(string[] args)
        {
            Console.CursorVisible = false;
            TimetableORM timetableFile = new TimetableORM("Data/timetable.txt");
            TrainORM     trainFile     = new TrainORM("Data/trains.txt");
            StationORM   stationFile   = new StationORM("Data/stations.txt");

            new TrackORM("Data/traintrack2.txt", stationFile.Stations);

            List <ITravelPlan> travelPlans = new List <ITravelPlan>();

            foreach (Train train in trainFile.Trains)
            {
                // Create the travel plan for the train "newTrain".
                ITravelPlan travelPlan = new TrainPlanner(train)
                                         .AddStations(stationFile.Stations)
                                         .AddTimetable(timetableFile.Timetable)
                                         .GeneratePlan();

                // Save the travel plan to file
                travelPlan.SavePlan();

                // Save the travel to a list
                travelPlans.Add(travelPlan);
            }

            // Create a fakeTime object which we can send into the travel plan "simulator".
            FakeTime fakeTime = new FakeTime(10, 00);

            System.Console.WriteLine("The Train Simulator");

            foreach (var travelPlan in travelPlans)
            {
                travelPlan.Simulate(fakeTime);
            }

            // Start the time after all travelplan simulations have been instantiated.
            fakeTime.StartTime();


            TravelPlan travelPlan1 = new TravelPlan();

            travelPlan1.LoadPlan(@"C:\Temp\travelplan-train2.json");
        }