I’ve always been into photography as just one of my many expensive hobbies. A very respected Photographer Jerry Ghionis always says “You don’t have to be the best, you just have to be better than last week.” I’ve tried to keep that in my head while working on the ATC system because like you, I too want it to be the best…and that’s the long-term goal, but I have to be honest, the ATC system in X-Plane v10.0 is not perfect. There, I said it! The ATC system is a tough thing to model not just because of its complexity but also because humans are inconsistent and unpredictable. Humans add a touch of randomness to every decision from the simplest thing such as phraseology to the most elaborate thing like vectors for an instrument approach.

What I can say however is that it’s a system that’s designed to get better. Until now, the ATC system has been very stagnant with little improvement or change in many versions. I’ve completely started from scratch and come up with a system that can be built off of so that it gets better and better. If you think you have a list of requested features, I’m willing to bet that my list is longer. Like the scenery system and many other systems in X-Plane, there’s ALWAYS something that can be done to make things better.

Another thing to consider that may not be obvious to a lot of people. The ATC system is really two pieces in one. Of course, there’s air traffic control to give you instructions but more importantly (I’d argue) is the AI traffic. Before, AI aircraft just flew around doing whatever they felt like…almost like zombies. Now however, ATC has control of them. That means they play nice, it means they follow you around to some extent so that the world is alive wherever you go. It may not seem like much but when you turn the AI traffic off, you’ll feel very alone. My point is, airports now FEEL like airports. Even if you decide never to use the ATC system directly, just having the hustle and bustle of a busy airport is a win. Before anyone asks, yes the system is currently limited to 20 AI aircraft. The aircraft are on their own threads so those of you with multi-core processors will certainly rejoice in seeing that things are using those other cores. In the future, we do plan on having alternate ways of getting the traffic count up higher for really busy airspace but I’m not willing to discuss that just yet.

So what can you expect from the INITIAL release? AI planes will be around you. They’ll be on the field departing and arriving with you. As you depart and fly around, they’ll transition to pass by you enroute. You’ll hear/see them on text and voice and even out the window. AI planes run REAL physics so you’ll see controls deflecting, flaps moving etc. As a human, you can file a flight plan, grab a clearance, get taxi instructions, get a takeoff clearance, you’ll transition to Departure or Center. They’ll issue step descents and vector you in to an ILS or visual approach at your destination.

We also have designed in a lot of customization in the traditional X-Plane fashion. You can customize the voice and text phraseology. You can (and should) come up with your own airport taxi layouts. Insert hold short points, tag the taxiways with the real names, create your own runway flows and of course customize controller airspace and frequencies.

A note on runway flow which i think is really neat….You specify which runways get used for different operations based on wind, ceiling, visibility, time of day, initial heading after departure and aircraft type. This lets you model how the real airport functions under various conditions not just for realism but also for efficiency (which is why the real world does it that way to begin with).

There are a lot of features still left to add but I hope you’ll understand that it’s a brand new system in its infancy. I hope you can see that our goal is to continuously add features and improve it incrementally…and also do this while offering users ways to customize the experience. What you see in v10.0 is NOT the end of ATC development. It’s just the very beginning.

Finally, please do NOT ask “Will we have feature X?” or similar variations. I do not want the blog to become a center for feature requests…especially on a system such as ATC that’s just been born.

I keeeeed!

About Chris Serio

Chris is an electrical engineer and commercial pilot who got roped into software development by Ben because misery loves company.

115 comments on “ATC: Description of a System Pt 1

  1. sounds great, not only is the ATC & AI traffic all new this time with many features, it will only get added too over update patches and customization via patches too. Like a never ending enhancement

  2. Congrats Chris, really looking forward to this!

    And as you said “it’s just the beginning”!

    Thank you for all your hard work, and sharing this with us.

  3. Thanks for the update, Chris! You mentioned devs should come up with their own taxiway layout and things…how many airports has that been done for in the base scenery set? I assume not the whole world… 🙂

    1. I’ve done KBOS and I’ve also done our v10 demo airport (which i don’t know if it’s supposed to be a secret or not so i won’t say the location). The rest is up to you guys. It will be possible through a future version of WorldEditor (WED). We do however autogenerate taxi layouts for ALL towered airports in the world on-the-fly in the sim through some magic that Ben wrote which is quite amazing. This autogenerated layout is good enough for the AI to use to get from place to place around the airport but it doesn’t have any metadata like taxiway names and it’s a bit zig-zaggy so any reasonable author will take the time to make and public their own layout. The autogenerated ones are a good solution for airports without a custom layout just so the system continues to work nicely.

      It’s actually really quick to make a layout. I’m HORRIBLE when it comes to using WED and I did a major Class B airport layout in about 2 hours from start to finish.

  4. Thanks Chris for runway flow, that answers my question, I like the idea we contribute to the idea, I’m sure many will beaver away and deliver,
    but did i miss read in that only a few airports will have ATC when you start up the newly installed XP10?

    one other question, how do we interact with ATC, would we need a microphone? (headset) or just written commands.

    1. No, all towered airports will have ATC, it’s just that it won’t be specialized unless an author creates a custom layout. In other words if you want to hear “Taxi to runway 22R via alpha delta echo two”, you need a taxi layout. By default you’ll just hear “Taxi to runway 22R” because we have no idea what the taxiways are named.

      Interaction with ATC is done through a menu system, just like the previous version.

      1. Will there be the ability to decipher the ATC menu system externally via the plugin system so that a Speech Recognition program could be crafted to give the ability to interface with the built-in menus? This was something that was always lacking in both MSFS and XP. I would hope that this data is exposed somehow to allow for voice interaction in the future. This being a major endeavour, I wouldn’t expect your team to grasp at this for a while but instead to leave the 3rd party to come up with something akin to VoxATCX, but using your built-in ATC as the foundation.

  5. Sounds all good; the major goals have been met and the sim will be more immersive. Improvements can trickle in over time. But what happens to existing custom scenery airports, presumably the AI can’t use those gates unless it knows if a gate is occupied or not.

    1. Existing airports with custom scenery are no different, we’ll still auto-gen a taxi layout there and we’ll still spawn aircraft at the ramp starting locations.

  6. Hi Chris,

    What voices will be employed for ATC? Are they prerecorded somehow or does it use the OS system voices?


      1. Are there future plans to use recorded voices for ATIS too?
        Text to speech is annoying on Windows, for example.

        1. Text to speech is so good on Mac OS X Lion that I’d have been satisfied with the OS system – especially as it has accents like British, Australian, etc. On the up side, since ATC is prerecorded, there may develop a thriving market for regional sound files from users (much like 3rd party scenery).

  7. Thanks for this explanation Chris. It already sounds like a very well thought out, advanced, feature rich and adaptable system. I’m looking forward to jumpling into X-plane 10 to try it for myself.

    But, I have a question. A very stupid question and I’m most likely being plain thick. So for example, I take off in the default 747 from Heathrow and there are 20 AI aircraft (maxed out) doing their thing, whether that be asking for clearance to depart, rolling down the runway, landing, etc. etc. Let’s say I take off from Heathrow with these 20 AI around me and I fly and land at Gatwick for instance. Will there be 20 aircraft there too? Asking for clearance to land, already taxiing to depart Gatwick and such? How does the simulator decide where and when to use that AI? Do the planes follow a path to their destination? Do they carry out their entire flight from start to finish? You see, I told you it was a stupid question!!! If you can’t answer it in terms of features still under development, I understand. If you can’t answer it because you don’t understand what i’m asking… i’d also understand. I’m having a tough time trying to comprehend my own question. Errr..I’ll get my coat!

    1. It’s not a stupid question at all. Planes are spawned in a certain radius around YOU. If you just happen to file to the same airport as one of those AI planes, and you leave around the same time as him, and you have similar speeds as him, he’ll be with you the whole time. What that means is that AI planes are not spawned just to buzz you and then disappear, they’re all on real routes with real intentions to get from airport A to airport B. If they happen to get outside of that certain radius, where you can’t see/hear them, they’re deleted by the system and respawned somewhere useful to you.

      So if you flew from Heathrow to Gatwick, there would be planes departing and arriving Gatwick as you arrived.

  8. Sounds all great Chris 🙂
    Quick question, can you tell a bit about how you pick the AI aircraft?
    Are they only the default aircraft, or will you choose from whatever is available in the aircraft folder? Or maybe you have a separate “AI aircraft folder”?
    One of the reasons I ask is because many custom aircraft can hit fps pretty hard. e,g, having 20 CRJs arounds you..

    1. YOU the user, pick the aircraft mix the same way you do now in the Aircraft & Situations menu. You can pick default or custom planes but remember that planes that are “tricky” to fly are not going to be flow so well by the artificial intelligence.

      1. Thanks for that, I asked the same question in Avsim without a reply.

        Really looking forward to this one 🙂

  9. Hi there,
    I am a bit perplexed by the 20 AI limitation. That does not make a lot for large hubs airport like ORD, JFK, LHR or CDG. This will result in a lot of empty place in hubs.

    Will it be possible to have a system similar to WorldofAI, where users generate realistic flightplans for ten of thousand of flights?

    Also, will it be possible to have dedicated airplance for AI traffic that do not eat a lot of polygons and do not eat a lot of texture? I understand the real physics thing very well but does it make sense to have super duper AI models with virtual cockpits and cabins flying arund you? I am asking that for the sake of performance so that the 20 AI limit per core may be lifted.


  10. a) Does that mean that if you set AI-planes to 20, there will be always 20 AI-Planes “around”, no matter if bush-flying or on a large airport?
    Or does the system adjust the number of AI-planes regarding the type of airport/area and is only limiting “top-down” to the set max. figure?

    b) Will there be “dummy” -planes at the airports to make them look “crowded”?
    I think that 20 moving planes in most cases give you the feel of a real busy airport if they are mixed with a good couple of parked planes.

    Thanks and good luck readying the master-DVD!

    1. Well not all 20 are ever on the ground. Typically there’s 8-9 departing, 8-9 arriving and the rest overflying. The arrivals go to their gate and then back out for departure again…but there’s currently no logic to limit it based on airport size. I may change it so that when we run out of gates, we’re done spawning planes so small airports with only one ramp start will only have one departure…but the problem is that many major airports still only have a handful of gates because no one has ever improved them so there’s always a tradeoff.

      1. It sounds to me like a future revision of the ATC system could benefit from airports being tagged with data about the quantity and type of traffic it gets, maybe even broken up by time frames. For example, AirNav.com gives information for my local airport like an average of 206 aircraft per day, and gives a breakdown of traffic type.

  11. Fantastic work Chris!

    Based on your testing so far, do you feel the performance of running 2-3 planes per thread acceptable?

    1. I assume you mean per core and not per thread but to answer your question…if we didn’t feel it was acceptable, we wouldn’t have done it. 🙂 In practice however, it’s like every other setting in XPlane. We give you plenty of rope but you have to be careful not to hang yourself. If you have everything else maxed out and your CPU is pegged at 100%, adding AI aircraft is going to hurt. If your CPU is currently bored, they won’t be an issue.

  12. I’m one of those that simply think having AI aircraft that do cost a lot of CPU -are- in fact worth having due to two things:

    1) Having AI aircraft with full physics and in full quality makes a huge impact on the reality of the simulator. It makes it so much more real and believable. The difference comparing to an empty, silent, dumb and sterile world is just huge.

    2) CPU power is nowadays increasing exponentially. In the latest years so much has happened to the manufacturing processes and overall development to CPUs. 18 months from now we -will- have 8 highly clocked cores on high-end computers. These computers of tomorrow won’t have a problem running 50+ AI aircraft, making an even more immense simulation.

    Backward compatibility is important, and by offering current gen computers the ability to run 20-30 AI planes my personal opinion is LR is choosing the absolutely best compromise given the situation. To start thinking on implementing “dumb” airplanes in addition to the 20 smart we have at this point (Q3-Q4 2011) seems to me as an unnecessary approach to solve this rather temporary problem.

    My hat’s off to the team behind LR. You guys are doing one hell of a job making this sim come true! In my notebook you’re nothing but a bunch of heroes!

    1. This gets into the systems which i haven’t really described publicly just yet but you’ll be allowed to specialize MOST of the things ATC says. For example, by default ATC phonetically pronounces things it doesn’t recognize…so an IFR fix called BOSOX would be heard as “Bravo, Oscar, Sierra, Oscar, X-Ray” by default however in the KBOS area, real controllers just say “BO-SOX”…so a user making a custom voice pack for the Boston area could specialize that using our voice aliases so that the system will grab the “bosox.wav” file instead of trying to phonetically spell it out. The same specialization can happen on airport names, controller positions, callsigns and even big phrases like “Runway 22 left you’re cleared for takeoff”. The more we let people specialize, the better the voice is going to sound which is our goal.

      As far as what’s going to ship by default…I can’t make any promises. I’d LIKE to get some major carrier callsigns in there but it may have to come later as an update.

      1. “Clipper” is sadly gone, “Speedbird” (BA) is picked and there are variations Speedbird 1 & 3 is the London City to JFK Shuttle, 2 & 4 the reverse route, Concorde used “Speedbird Concorde 1 (to 4)”, we are certain to quickly fill these areas, Like Robin Peel does with the Airport updated data we could do with ATC data.

  13. I’m really looking forward to the new ATC.

    Can we have keyboard commands (or joystick commands) to access the menu options in ATC? I much prefer that to haivn got use the mouse.

    for example, in X-plane 9 dialing in the correct ATIS frequency on the COM 1 gets me the ATIS without having to use the mouse. It would be nice if dialing in the correct Ground, Tower or Centre or Delivery freqency gives direct access to menu options related to that controller (same way it works in Radar Contact for example).

  14. Thanks. Yes, I knew about the “enter” to bring up the menu. But what I was hoping for is for each option in that menu to be accessed by a keyboard or joystick command. Currently you can only click on it. If it had a number next to it, then pressing that number would activate the command.

    1. There’s a joystick up/down to navigate the ATC menu. The menu is context sensitive so you wouldn’t want to assign buttons directly to numbers anyway since the order will change.

      1. I think that he talks about something like Flight Simulator does: always displays numbered items from 1 to 4 (supposing that there are 4 options to choose); you press a number and the next options (based on what you choose) will also have numbered items (again, from 1 to N (N = number of options)). And so on.
        So basically you can use the ATC system by pressing only numbers.

        1. That’s it. Actually, Radar Contact does it much better. That system uses the same number assignment for a command regardless of the context. For example “7” was always “reply to ATC”, regardless of the context – so I could fly without the dialogue box. I’d hear an instruction from ATC and I just press “7” and it replies. So I can actually interact with ATC without having to deal with menus or popups (though you could if you wanted to).

          Sames goes for using the Com radios. For example, I’m told to contact “centre” on 134.5 – so I press “7” reply. Then I dial in the frequency on Com1, and then press “1” (which I know is always “contact ATC”) – all without having to look at a menu.

          Radar Contact is the only thing I miss from Flight Simulator. 🙁

  15. This is amazing.. One note, please please add datarefs for using this – Without them this will be useless to us cockpit builders, we usually don’t have neither mouse nor keyboard attached to the computers!

        1. I’m writing a web app for the iPad I will use as EFB and ATC functions would be there (CGI script writes dararefs via UDP) so no mouse/keyboard needed. It also will have fuel and pushback request pages and will separately run a moving map.

        2. I have the IOS computer outside the cockpit, it has the necessary input devices. It would be good to be able to enter the flight plan from there.

        3. I have a plugin command that loads a flight plan file on a single button press. The flight plan file is always the same name. I just rename whatever file I’ve created using Goodway or Upsidown’s Google based plan editor to this name. I never use a keyboard or mouse after I’ve gotten to the cockpit in X-Plane. I second the request for some key-press means of making an ATC selection. The dataref accessibility opens the door for a third party voice command recognition system to be designed. Mice and keyboards are for desktops. 🙂 There’s no desk in my ‘pit!

        4. External app driving ATC using dataref. For setting weather, I made an iPad app so from iPad I set weather and so on. Could extend it to also file flightplans, providing datarefs are available

          1. Long story short… datarefs matter 😉

            An iPad (or any other tablet) is not a stranger in a flight deck as Boeing and other companies are already retrofitting their planes to accommodate EFBs. And data input from there with datarefs can be done without cluttering the cockpit view with dialogs and menus that do not exist in real life.

  16. How about vectoring in mountains area?
    Does the ATC knows about them?
    I hope it will not vector me directly to the mountain, like some fsx ATCs do…

    1. Currently, there are no MVA maps programmed in. We do our best to keep aircraft at reasonable altitudes AGL but at some airports with nearby mountains, this may still be a problem for at least the short-term.

      1. Couldn’t one just create custom ATC space that causes the system to vector aircraft safely around the mountains? I realize that it wouldn’t be official but it would act like there was a human controller monitoring the airspace.

  17. I think this sounds interesting, but just as interesting to me:

    How about GA aircraft operating around nontowered airports? Will they communicate with each other on CTAFs? Announce when they’re 5 miles out? Announce taxiing? Fight with each other about which runway’s in use when there’s no wind? 😉

    Humans under ATC control are not really all that unpredictable when compared to what goes on around and between busy GA airports sometimes.

    1. As they said before, VFR will not be supported yet. So AI aircraft at untowered airports probably won’t be with the initial release. I do not work for LR so I could be wrong.

  18. Looking forward to this system! One question: Will there be used SIDs and STARs? Where does the data come from? Will there be an update option like Navigraph does? And how will ATC work with planes that “bring their own nav-data”, like JRollons CRJ?


  19. Do the ground controllers hold you short of an active RWY if, say, you’re taxiing for departure and you need to cross a runway that another airplane is approaching: “Taxi to 28R via Alpha, Bravo, hold short of 28L”?

    1. yes, very crucial and realistic. cant have new great ATC system have you hit another plane via runway collision

      1. What would happen if I was told to hold short of a runway, but screwed up and went on the runway? Would the acf landing be told to go-around and would I get yelled at by ATC like in real life?

        And what if I do something smaller like miss a taxiway? Would it give me a new route?

        Thanks in advance.

          1. Chris, I know you said don’t ask if it does “X”, but this is kind of along the lines of what you have already divulged. Is speed “vectoring” part of the ATC? Example: “N2C45 descend and maintain flight level 220, reduce speed to 290 knots”.


  20. When it comes to custom ACT voice packs, could you please release a list of words we have to say? (Before the release would be nice) I want to record some stuff now!

    1. There is a file in voice pack that’s the mapping to your wave files. This file IS essentially the script. I can’t promise it’ll be released early though. It’s still changing at this point as we refine things.

  21. Hi chris,
    Considering the current limit to 20 ai planes, i was wondering if you kill far away traffic and spawn new one closer to destination, so to promote more traffic around the user (and avoid empty traffic zones at destination).

  22. Sorry you replied already to another user, it seems yes they’ll behave like that.

  23. This is for me the critical improvement over Xplane 9 & the residual longing for FSX is now officially put to bed. Now just let me buy it….

  24. I’m suggesting giving some sort of a community prize to Chris.. what he’s been doing seems revolutionary in many ways..

      1. Thanks,
        What behaviour do Ai planes adopt when you are also connected to an X-Plane user via Built in P2P?

        1. No atc in multiplayer/p2p, thus no aircraft to describe their behaviour…at least i surmize from chris’s comment.

    1. That scenery doesn’t look good at all. If you want some inspiration look at what Outerra is doing !

  25. Sad to see the same, low-res ground textures we had 5 years ago…

    Just having real detail (not AI rendered “microdetail”) at very low altitude makes simulators so much more real and makes it easier for you to experience the true speed also.

    Anyway, based on these new screenshots XP10 looks to be very promising. Just a bit sad that the textures lag a bit behind… You could even just dump the textures and implement same tech as above posted renderer (Gugila). Just having that textures more high res makes a dramatic effect to the overall looks. Even from 10 feet up!

    1. The ground environment is not what chris is working on, therefore his videos of the AI/ATC behaviour are from an upgraded XP9 to work with the new aircraft and the new ATC system he’s developing in place. As his project nears it’s peak, his code will be joined with the code from the other members to form the final product that will be tested in house for verification, then shipped out once they’re satisfied.

      This is common practice for development to compartmentalize the project, then join the products at stages to confirm each project will play nice with the others.

    1. Antonio thanks for those Outerra links, surely there will be a point beyond which I’m no longer amazed by these things. I don’t understand the rest of your comment in relation to XP10 though. Are you suggesting there are only small(ish) improvements they need to make before the world looks like this?

      1. I am a layman, I wanted to know if the difference in details of the mountains is due to the compilation of the shader, or simple data texture.About xplane the improvements are significant, I’m sure I will futuro.Io lot of curiosity. there will be a military atc? heat blur effect will be? will be a wet track in the rain? will be vc rain or ice effect? I know that you can ‘t give me all the answers … I try. we can always improve.
        Sorry for my bad English Antonio

  26. I believe that shot came from the set posted to facebook and the like where the shots focused on the cloud renderings with default XP9 land…only the clouds you see are XP10, the rest is version 9.

  27. The ATC (and AI) system looks impressive and seems like a great improvement to XP9 but from what I gather after reading through this thread only IFR flights are supported using ATC and no VFR? That would be a huge let down to me and probably to many others not interested in flying the big irons under a strict IFR flightplan.

    Please Chris if you could verify that in XP 10 I wont be able to fire up my Cessna 172 or Piper Warrior at my local airfield, tune ATIS and communicate with ATC on a need basis (crossing controlled airpace for example) without a flightplan?


  28. First, I would like to say thank you to Chris for all his hard work! This will be a whole new world and offer me what I’d been craving from V9. Simply having other planes landing and departing from the same runway as you will make it 10x more realistic. I wonder if the ATC will tell you to slow down if you’re on long final and need to give another plane space for take off? The only thing I have left to crave after this update is the ability of Voice recognition and being able to literally talk to the computer through a headset. If I had that, this would be the ultimate simulator! Thanks again Chris and the LR team for all you’ve done!

    1. With the technology in Apple’s new “Siri” and it’s AI and incredible voice recognition, it’s probably not that far away.

  29. I wholeheartedly agree! On behalf of TTT Aviation Ltd. and the whole Finnish flight training community, thank you *so* much 🙂

  30. Hi Chris,

    Like others here, I’m a long time MSFS user longing for XPlane to mature to jump in on board. This is not a feature request, it’s more a “Why couldn’t this be implemented?”.
    When prompted to reply to ATC, we’re all used to press keys via a menu, which I think is a huge “imersion killer”, but beeing a fan of the well known FS2Crew Voice programs, I’ve started to question why couldn’t the same philosophy be used to interact with ATC: When asked for a reply, one would speak to a microphone, and a voice recognition program would search for trigger words and “understand” what the user meant to say, avoiding a line selection via a menu.
    This kind of Default ATC would be a huge leap forward reality-wise and would surely be much apreciated among the comunity.
    What do you say??…

    Keep up the good work, XP10 is looking very, very promising.

    Bruno Silva

    1. I’ve had this same idea for some time now and actually was trying to make a voice recognition program that would bridge the gap. I never hated FS9/FSX’s built-in ATC as some did and never really warmed up to VoxATC enough to shell out the dough (and the trial didn’t go so well either). The other solutions didn’t seem to offer much better results as they all relied on a 3rd party 3rd party 3rd party’s program and they all had to get set up properly to work and I never could manage to get realistic voice interaction with ATC.

      I then had a brainstorm to try to get the ATC menu information out of FSX itself. No luck. I’d have to try to hack deep into FSX and window enumeration and I just wasn’t wanting to make something so complex.

      Now, with XP10 on the horizon, the idea has already been brought up several times to expose the XP ATC system interface via dataref. I could then (as well as anyone else) tie into the dataref system. The rest is all in making the speech recognition profiles and the selection logic to interpret what the user says and make the proper selection in XP10.

      Hell, if the XP design team wanna do that for us, it would save me some time to work on my home cockpit. But exposing the choices and prompt via dataref should be on the list by now. Fingers crossed, a priority, but I’m sure there’s a lot that is on the list.

  31. I hope this new great ATC will support monthly updated airac fix database and sid/star instruction. Only sid/star and fix/intersection database could be handled bu text to speeech, and other atc instruction via prerecordered voices. For example: “Alitalia 123 cleared for LIRF via CHI6A….”, where the name of sid could be pronounced like “charlie hotel india six alpha” or an holding pattern pronounced like “Alitalia 123 hold on PELEG intersection”. This will be a great feature imho. Could it be possible?

  32. *Anything* is possible pretty much, it just needs to be coded. As Chris said, you can customize pretty much all the voice elements, which I think would include terminal procedure names as well once implemented into the system…

  33. Maybe it´s time to close this thread, redundant questions arising.
    Desperately waiting for part 2 of the ATC description or a new post!

  34. I am really holding my thumbs XP10 can make use of the 16GB of RAM I purchased for it last month. XP in 64 bit really should be avalible in 2011. Any news about this, Ben?

    Thanks guys for all your effort. XP10 will be #1 on my christmas list!

Comments are closed.