With all new technologies there are predictions of how good it will be for humankind, or how bad it will be. A common thread that I have observed is how people tend to underestimate how long new technologies will take to be adopted after proof of concept demonstrations. I pointed to this as the seventh of seven deadly sins of predicting the future of AI.
For example, recently the early techno-utopianism of the Internet providing a voice to everyone and thus blocking the ability of individuals to be controlled by governments has turned to depression about how it just did not work out that way. And there has been discussion of how the good future we thought we were promised is taking much longer to be deployed than we had ever imagined. This is precisely a realization of the early optimism about how things would be deployed and used did just not turn out to be.
Over the last few months I have been throwing a little cold water over what I consider to be current hype around Artificial Intelligence (AI) and Machine Learning (ML). However, I do not think that I am a techno-pessimist. Rather, I think of myself as a techno-realist.
In my view having ideas is easy. Turning them into reality is hard. Turning them into being deployed at scale is even harder. And in evaluating the likelihood of success at that I think it is possible to sort technology and technology deployment ideas into a spectrum running from relatively easier to very hard.
But simply spouting off about this is rather easy to do as there is no responsibility for being right or wrong. That applies not just to me, but to pundits ranging from physicists to entrepreneurs to academics, who are making wild predictions about AI and ML.
It is the New Year and there will be many predictions about what will happen in the coming year. I am going to take this opportunity to make predictions myself, not just about the coming year, but rather the next thirty two years. I am going to write them in this blog with explicit dates attached to them. Hence they are my dated predictions. And they will be here on this blog and copies that live on elsewhere in cyberspace for all to see. I am going to take responsibility for what I say, and make it so that people can hold me to whether I turn out to be right or wrong. If I am unfortunate, some of my predictions will at some point seem rather dated!
I chose thirty two years as I will then be 95 years old, and I suspect I’ll be a little too exhausted by then to carry on arguments about why I was right or wrong on particular points. And 32 is a power of 2, so that’s always a good thing. So the furtherest out date I am going to consider is January 1st, 2050. And that also means that I am only predicting things for exactly the first half of this century (or at least for the first half of the years starting with “20” — there is a whole argument to be had here into which I am not going to get).
I specify dates in three different ways:
NIML meaning “Not In My Lifetime, i.e., not until after January 1st, 2050
NET some date, meaning “No Earlier Than” that date.
BY some date, meaning “By” that date.
Sometimes I will give both a NET and a BY for a single prediction, establishing a window in which I believe it will happen.
My RuleS OF PREDICTION
I am going to try to be very precise about what I am predicting and when. Now in reality precision on defining what I am predicting is almost impossible. Nevertheless I will try.
I had an experience very recently that made me realize just how hard people will try, when challenged, to hold their preconceived notions about technologies and the cornucopia they will provide to humanity. I tweeted out the following (@rodneyabrooks):
When humans next land on the Moon it will be with the help of many, many, Artificial Intelligence and Machine Learning systems.
Last time we got to the Moon and back without AI or ML.
My intent with this tweet was to say that although AI and ML are today very powerful and useful, it does not mean that they are the only way to do things, and it is worth remembering that. They don’t necessarily mean that suddenly everything has changed in the world in some magical way1.
One of the responses to this tweet, which itself was retweeted many, many times, was that Kalman filtering was used to track the spacecraft (completely true), that Kalman filtering uses Bayesian updating (completely true), and that therefore Kalman filtering is an instance of machine learning (complete non sequitur) and that therefore machine learning was used to get to the Moon (a valid inference based on a non-sequitur, and completely wrong). When anyone says Machine Learning these days (and indeed since the introduction of the term in 1959 by Arthur Samuel (see my post on ML for details)) they mean using examples in some way to induce a representation of some concept that can later be used to select a label or action, based on an input and that saved learned material. Kalman filtering uses multiple data points from a particular process to get a good estimate of what the data is really saying. It does not save anything for later to be used for a similar problem at some future time. So, no, it is not Machine Learning, and no, we did not use Machine Learning to get to the Moon last time, no matter how much you want to believe that Machine Learning is the key to all technological progress.
That is why I am going to try to be very specific about what I mean by my predictions, and why, no doubt, I will need to argue back to many people who will want to claim that the things I predict will not happen before some future time have already happened. I predict that people will be making such claims!
What is Easy and What is Hard?
Building electric cars and reusable rockets is easy. Building flying cars, or a hyperloop system (or a palletized underground car transport network underground) is hard.
What makes the difference?
Cars have been around, and mass produced, for well over a century. If you want to build electric cars rather than gasoline cars, you do not have to invent too much stuff, and figure out how to deploy it at scale.
There has been over a hundred years of engineering and production of windscreen wipers, brakes, wheels, tires, steering systems, windows that can go up and down, car seats, a chassis, and much more. There have even been well over 20 years of large scale production of digitalized drive trains.
To build electric cars at scale, and at a competitive price, and with good range, you may have to be very clever, and well capitalized. But there is an awful lot of the car that you do not need to change. For the majority of the car there are plenty of people around who have worked on those components for decades, and plenty of manufacturing expertise for building the components and assembly.
Although reusable rockets sounds revolutionary there is again prior art and experience. All liquid fuel rockets today owe their major components and capabilities to the V-2 rockets of Wernher von Braun, built for Hitler. It was liquid fueled with high flow turbopumps (580 horsepower!), it used the fuel to cool parts of the engine, and it carried its own liquid oxygen so that it could fly above the atmosphere. It first did so just over 75 years ago. And it was mass produced, with 5,200 of them being built, using slave labor, in just two years.
Since then over 20 different liquid fueled rocket families have been developed around the world, some with over 50 years of operational use, and hundreds of different configurations within those families. Many variations in parameters and trade offs have been examined. Soyuz rockets, a fifty year old family, all lift off with twenty liquid fueled thrust chambers burning. In the Delta family, the Delta IV configuration has a “Heavy” variant, three essentially identical cores in a horizontal line, where the cores are all a first stage of the earlier single core Delta IV.
The technology for soft landing on Earth using jet engine thrusters has been around since 1950s with the Rolls Royce “flying bedstead”, with the later, at large scale, Harrier fighter jet taking off and landing vertically. A rocket engine for vertical landing was used, without atmosphere, for the manned lunar landings on the Moon, starting in 1969.
Today’s Falcon rocket uses grid fins to steer the first stage when it is returning to the launch site or recovery barge to soft land. These were first developed theoretically in Russia in the 1950’s by Sergey Belotserkovskiy and have been used since the 1970’s for many missiles, both ballistic and others, guided bombs, cruise missiles, and for the emergency escape system for manned Soyuz capsules.
There has been a lot of money spent on developing rockets and this has lead to many useable technologies, lots of know how, and lots of flight experience.
None of this is to say that developing at scale electric cars or reusable rockets is not brave, hard, and incredibly inventive work. It does however build on large bodies of prior work, and therefore it is more likely to succeed. There is experience out there. There are known solutions to many, many, but not all, problems that will arise. Seemingly revolutionary concepts can arise from clusters of hard and brilliantly thought out evolutionary ideas, along with the braveness and determination to undertake them.
We can make estimates about these technologies being technically successful and deployable at scale with some confidence.
For completely new ideas, however, it is much harder to predict with confidence that the technologies will become deployable in any particular amount of time.
There have been sustained projects working on problems of practical nuclear fusion reactors for power generation since the 1950’s. We know that sustained nuclear fusion “works”. That is how our Sun and every other star shines. And humans first produced short time scale nuclear fusion with the first full scale thermonuclear bomb, “Ivy Mike”, being detonated 65 years ago. But we have not yet figured out how to make nuclear fusion practical for anything besides bombs, and I do not think many people would believe any predicted date for at scale practical fusion power generation. It is a really hard problem.
The hyperloop concept has attracted a bunch of start ups and capital for them, though there has been nothing close in concept that has ever been demonstrated, let alone operated at scale. So besides figuring out how to develop ultrastable cylinders that go for hundreds of miles, containing capsules that are accelerated by external air pressure traveling at hundreds of miles per hour while containing living meat of the human variety there are many, many mundane things to be developed.
One of the many challenges is how to seal the capsules and provide entirely self contained life support within for the duration of the journey. Also the capsules must be able to go past stations at which they are not stopping in a stable manner, so stations will need to be optionally sealed off from the tube for a through capsule, while allowing physical ingress and egress for passengers whose capsule has stopped at the station. There will need to be procedures for when a capsule gets stuck a hundred miles from the nearest station. There will need to be communications with the capsule, even though it is in a pretty good Faraday cage. There will need to be the right seats and restraints developed for the safety of the passengers. There will need to user experience elements developed for the sanity of the passengers while they are being whizzed at ultra high speed in windowless capsules. And then there are route rights, earthquake protection, dealing with containing cylinder distortions just because of the centimeter or so of drift induced along the route in the course of year just due to normal smooth deformations of our tectonic plates. And then there are pricing models, and getting insurance, and figuring out how that interacts with individual passenger insurance. Etc., etc.
There will need to be many, many new technologies and new designs developed for every aspect of the hyperloop. None of them will have existed before. None of them have been demonstrated, nor even enumerated as of today. It is going to take a long time to figure all these things out and build a stable system around them, and to do all the engineering needed on all the components. And it is going to be a hard psychological sell for passengers to ride in these windowless high speed systems, so even when all the technology challenges have been knocked down there will still be the challenge of pace of adoption.
So…while there might be some demonstration of some significance in the next 32 years I am confident in saying that there will be no commercial viable passenger carrying systems for hyperloop within that time frame.
I use this framework in trying to predict timing on various technological innovations. If something has not even been demonstrated yet in the lab, even though the physics says that it will be good to go, then I think it is a long, long way off. If it has been demonstrated in prototypes only, then it is still a long way off. If there are versions of it deployed at scale already, and most of what needs doing is evolutionary, then it may happen before too long. But then again, no-one may want to adopt it, so that will slow things down no matter how much enthusiasm there is by the technologists involved in developing it.
ABOUT THAT ADOPTION THING
Adoption of new things in technology takes much longer than one might expect. The original version of the Internet used 32 bit addressing, allowing only 4 billion unique address for all devices on the network, and using a protocol called IPv4, Internet Protocol version 4. But by the early 1990’s it was recognized that with all the devices that would soon join the network (not just personal devices but so many other things like electricity meters, industrial sensors, traffic sensor and control, TVs, light switches(!), etc., etc.) the world would soon run out of address space.
By 1996 a new protocol, IPv6, Internet Protocol version 6, had been defined, increasing the address space to 128 bits from 32 bits, allowing for more devices on the network.
Since 1996 there have been various goal dates specified for when all network traffic should use IPv6 rather than IPv4. In 2010 the target date was 2012. In 2014 fully 99% of all network traffic was still using IPv4 with many, many clever edge systems to cram much more than 4 billion devices into a 4 billion device address space. By the end of 2017 various categories of network traffic running on IPv6 ranged from under 2% to just over 20%. It is still a long way from full adoption of IPv6.
There were no technical things stopping the adoption of IPv6, in fact quite the opposite. As the number of devices that wanted to connect to the Internet grew there had to be many very clever innovations and work arounds in order to limp along with IPv4 rather than adopt IPv6.
Using my heuristics (rate of replacement of equipment, maturity of technical solutions, real need for what it provides, etc.) that I use to make my predictions in this post, I would have thought that IPv6 would have been universal by 2010 or so. I would have been wildly over optimistic about it.
AND ABOUT THAT “IT ALWAYS TAKES LONGER THAN YOU THINK” THINg
SpaceX first announced their Falcon Heavy rocket in April 2011, broke ground on their Vandenberg AFB, California, launch pad for it in June 2011, and expected a maiden flight in 2013. The rocket was first moved to a launch pad on December 28, 2017, at pad 39A at the Kennedy Space Center in Florida. It is now expected to fly in 2018. Development time has stretched from two years to seven years. So far.
It always takes longer than you think. It just does.
PREDICTIONS ABOUT SELF DRIVING CARS
The first three entries in the table below are about flying cars. I am pretty sure that practical flying cars will need to be largely self driving while flying, so they sort of fit the category. By flying cars I mean vehicles that can be driven anywhere a car can be driven. Otherwise it is not a car. And I mean that a person who does not have a pilots license, but does perhaps have a few hours of special training, can get into wearing normal clothing that would be appropriate to wear at an office, and is able to travel 100 miles, say, with much of the journey in the air. It should require no previous arrangement for the journey, no special filing of plans, nothing beyond using a maps like app on a smartphone in order to know the route to get to the destination. In other words, apart from a little extra training it should be just like an average person today using a conventional automobile to travel 100 miles.
Now let’s talk about self driving cars, or driverless cars. I wrote two blog posts early in 2017 about driverless cars. The first talked about unexpected consequences of driverless cars, in that pedestrians and other drivers will interact with them in different ways than they do with cars with drivers in them, and how the cars may bring out anti-social behavior in humans outside of them. It also pointed out that owners of individual driverless cars may use them in new ways that they could never use a regular car, sometime succumbing to anti-social behavior themselves. The second post was about edge cases in urban environments where there are temporary signs that drivers must read, where on a regular basis it is impossible to drive according to the letter of the law, where mobility as a service will need to figure out how much control a passenger is allowed to have, and where police and tow truck drivers must interact with these cars, and the normal human to human interaction with drivers will no longer be present nor subjugatable by a position of authority.
For me it seems clear that driverless cars are not going to simply be the same sorts of cars as normal cars, but simply without human drivers. They are going to be fundamentally different beasts with different use modes, and different ways of fitting into the world.
Horseless carriages did not simply one for one replace horse drawn carriages. Instead they demanded a whole new infrastructure of paved roads, a completely new ownership model, a different utilization model, completely different fueling and maintenance procedures, a different rate of death for occupants, a different level of convenience, and ultimately they lead to a very different structure for cities as they enabled suburbia.
I think the popular interpretation is that driverless cars will simply replace cars with human drivers, one for one. I do not think that is going to happen at all. Instead our cities will be changed with special lanes for driverless cars, geo-fencing of where they can be and where cars driven by humans can be, a change in the norm for pick up and drop off location flexibility, changes to parking regulations, and in general all sorts of small incremental modifications to our cities.
But first let’s talk about the rate of adoption of driverless cars.
As I pointed out in my seven deadly sins post, in 1987 Ernst Dickmanns and his team at the Bundeswehr University in Munich had their autonomous van drive at 90 kilometers per hour (56mph) for 20 kilometers (12 miles) on a public freeway. Of course there were people inside the van but they had their hands off the controls. For the last 30 years researchers have been improving the ability of cars to drive on public roads, but it has mostly been about the driving, with very little about the interaction, the pick up and drop off of people, the interface with other services and restrictions, and with non-driving passengers inside the cars. All of these will be important.
From one point of view it has been slow, slow, slow incremental progress over the last thirty years, even though the work has been focused on only a small part of the problem. Just about a year ago I saw a tweet which I loved, which said something like “The customers knew that they had gotten a driverless Uber as there were two people in the front seat instead of just one.”. It is only just in the last few weeks that have started seeing actual unoccupied cars on public roads, from Waymo in Phoenix, Arizona. A tweet about this story referred to them as being the first “driverless driverless cars”…
But adoption is still a ways off. The price of the sensors still needs to come way down, and all the operational things about how the cars will be used and interface with passengers still needs to be worked out, let alone all the actual regulatory and liability environment under which they will operate needs to be put in place. Within some constraints, all these things will eventually be solved. But it is going to be much slower than many expect.
The true test of the viability of driverless cars will be when they are not just in testing or in demonstration, but when the owners of driverless taxis or ride sharing services or parking garages for end consumer self driving cars are actually making money at it. This will happen only gradually and in restricted geographies and markets to start with. My milestone predictions below are not about demonstrations, but about viable sustainable businesses. Without them the deployment of driverless cars will never really take off.
I think the under discussed reality of how driverless cars will get adopted is through geo fencing of where certain activities of those cars can take place, without any human driven cars in that vicinity. Furthermore applications of driverless cars will initially be restricted to certain cities and even areas within those cities, and perhaps even certain times of day and in certain weather conditions. It may be that for quite a while the cars for the first mobility as a service driverless cars (e.g., for Uber and Lyft like services) will only operate in a driverless mode some of the time, and at other times will need to have hired human drivers.
[Self Driving Cars]
|A flying car can be purchased by any US resident if they have enough money.||NET 2036||There is a real possibility that this will not happen at all by 2050.
|Flying cars reach 0.01% of US total cars.||NET 2042||That would be about 26,000 flying cars given today's total.|
|Flying cars reach 0.1% of US total cars.||NIML|
|First dedicated lane where only cars in truly driverless mode are allowed on a public freeway.||NET 2021||This is a bit like current day HOV lanes. My bet is the left most lane on 101 between SF and Silicon Valley (currently largely the domain of speeding Teslas in any case). People will have to have their hands on the wheel until the car is in the dedicated lane.|
|Such a dedicated lane where the cars communicate and drive with reduced spacing at higher speed than people are allowed to drive||NET 2024|
|First driverless "taxi" service in a major US city, with dedicated pick up and drop off points, and restrictions on weather and time of day.||NET 2022||The pick up and drop off points will not be parking spots, but like bus stops they will be marked and restricted for that purpose only.|
|Such "taxi" services where the cars are also used with drivers at other times and with extended geography, in 10 major US cities||NET 2025||A key predictor here is when the sensors get cheap enough that using the car with a driver and not using those sensors still makes economic sense.|
|Such "taxi" service as above in 50 of the 100 biggest US cities.||NET 2028||It will be a very slow start and roll out. The designated pick up and drop off points may be used by multiple vendors, with communication between them in order to schedule cars in and out.
|Dedicated driverless package delivery vehicles in very restricted geographies of a major US city.||NET 2023||The geographies will have to be where the roads are wide enough for other drivers to get around stopped vehicles.
|A (profitable) parking garage where certain brands of cars can be left and picked up at the entrance and they will go park themselves in a human free environment.||NET 2023||The economic incentive is much higher parking density, and it will require communication between the cars and the garage infrastructure.|
|A driverless "taxi" service in a major US city with arbitrary pick and drop off locations, even in a restricted geographical area.||NET 2032||This is what Uber, Lyft, and conventional taxi services can do today.|
|Driverless taxi services operating on all streets in Cambridgeport, MA, on Greenwich Village, NY,||NET 2035||Unless parking and human drivers are banned from those areas before then.|
|A major city bans parking and cars with drivers from a non-trivial portion of a city so that driverless cars have free reign in that area.||NET 2027|
|This will be the starting point for a turning of the tide towards driverless cars.|
|The majority of US cities have the majority of their downtown under such rules.||NET 2045|
|Electric cars hit 30% of US car sales.||NET 2027|
|Electric car sales in the US make up essentially 100% of the sales.||NET 2038|
|Individually owned cars can go underground onto a pallet and be whisked underground to another location in a city at more than 100mph.||NIML||There might be some small demonstration projects, but they will be just that, not real, viable mass market services.
|First time that a car equipped with some version of a solution for the trolley problem is involved in an accident where it is practically invoked.||NIML||Recall that a variation of this was a key plot aspect in the movie "I, Robot", where a robot had rescued the Will Smith character after a car accident at the expense of letting a young girl die.|
Predictions about ROBOTICS, AI and ML
Those of you who have been reading my series of blog posts on the future of Robotics and Artificial Intelligence know that I am more sanguine about how fast things will deploy at scale in the real world than many cheerleaders and fear mongers might believe. My predictions here are tempered by that sanguinity.
Some of these predictions are about the public perception of AI (that has been the single biggest thing that has changed in the field in the last three years), some are about technical ideas, and some are about deployments.
[AI and ML]
|Academic rumblings about the limits of Deep Learning||BY 2017||Oh, this is already happening... the pace will pick up.|
|The technical press starts reporting about limits of Deep Learning, and limits of reinforcement learning of game play.||BY 2018|
|The popular press starts having stories that the era of Deep Learning is over.||BY 2020|
|VCs figure out that for an investment to pay off there needs to be something more than "X + Deep Learning".||NET 2021||I am being a little cynical here, and of course there will be no way to know when things change exactly.|
|Emergence of the generally agreed upon "next big thing" in AI beyond deep learning.||NET 2023|
|Whatever this turns out to be, it will be something that someone is already working on, and there are already published papers about it. There will be many claims on this title earlier than 2023, but none of them will pan out.|
|The press, and researchers, generally mature beyond the so-called "Turing Test" and Asimov's three laws as valid measures of progress in AI and ML.||NET 2022||I wish, I really wish.|
|Dexterous robot hands generally available.||NET 2030|
BY 2040 (I hope!)
|Despite some impressive lab demonstrations we have not actually seen any improvement in widely deployed robotic hands or end effectors in the last 40 years.|
|A robot that can navigate around just about any US home, with its steps, its clutter, its narrow pathways between furniture, etc.||Lab demo: NET 2026|
Expensive product: NET 2030
Affordable product: NET 2035
|What is easy for humans is still very, very hard for robots.|
|A robot that can provide physical assistance to the elderly over multiple tasks (e.g., getting into and out of bed, washing, using the toilet, etc.) rather than just a point solution.||NET 2028||There may be point solution robots before that. But soon the houses of the elderly will be cluttered with too many robots.|
|A robot that can carry out the last 10 yards of delivery, getting from a vehicle into a house and putting the package inside the front door.||Lab demo: NET 2025|
Deployed systems: NET 2028
|A conversational agent that both carries long term context, and does not easily fall into recognizable and repeated patterns.||Lab demo: NET 2023|
Deployed systems: 2025
|Deployment platforms already exist (e.g., Google Home and Amazon Echo) so it will be a fast track from lab demo to wide spread deployment.|
|An AI system with an ongoing existence (no day is the repeat of another day as it currently is for all AI systems) at the level of a mouse.||NET 2030||I will need a whole new blog post to explain this...|
|A robot that seems as intelligent, as attentive, and as faithful, as a dog.||NET 2048||This is so much harder than most people imagine it to be--many think we are already there; I say we are not at all there.|
|A robot that has any real idea about its own existence, or the existence of humans in the way that a six year old understands humans.||NIML|
These predictions may seem a little random and disjointed. And they are. But that is the way progress is going to be made in Robotics, AI, and ML. There is not going to be a general intelligence that can suddenly do all sorts of things that humans (or chimpanzees) can do. It is going to be point solutions for a long, long time to come.
Building human level intelligence and human level physical capability is really, really hard. There has been a little tiny burst of progress over the last five years, and too many people think it is all done. In reality we are less than 1% of the way there, with no real intellectual ideas yet on how to get to 5%. And yes, I made up those percentages and can not really justify them. I may well have inflated them by a factor of 10 or more, and for that I apologize.
PREDICTIONS ABOUT SPACE TRAVEL
I have been a fan of spaceflight since my childhood, when every week my father would fly from Adelaide to Woomera, South Australia, to work on the first stage engines of a European satellite launch initiative know as Europa. Every couple of months I would go with him on a Friday evening to meetings of a club of enthusiasts where they would have the latest film footage from NASA which would be projected and discussed.
I decided back then that my life goal was to eventually live on another planet. So far my major progress towards that goal is to have not died on Earth before leaving. In my realistic moments I realize now that I may eventually fail at my goal.
So here are my predictions about space travel. Not as optimistic as wish I could be. But, realistic, I think.
|Next launch of people (test pilots/engineers) on a sub-orbital flight by a private company.||BY 2018|
|A few handfuls of customers, paying for those flights.||NET 2020|
|A regular sub weekly cadence of such flights.||NET 2022|
|Regular paying customer orbital flights.||NET 2027||Russia offered paid flights to the ISS, but there were only 8 such flights (7 different tourists). They are now suspended indefinitely.|
|Next launch of people into orbit on a US booster.||NET 2019|
BY 2022 (2 different companies)
|Current schedule says 2018.|
|Two paying customers go on a loop around the Moon, launch on Falcon Heavy.||NET 2020||The most recent prediction has been 4th quarter 2018. That is not going to happen.|
|Land cargo on Mars for humans to use at a later date||NET 2026||SpaceX has said by 2022. I think 2026 is optimistic but it might be pushed to happen as a statement that it can be done, rather than for an pressing practical reason.|
|Humans on Mars make use of cargo previously landed there.||NET 2032||Sorry, it is just going to take longer than every one expects.|
|First "permanent" human colony on Mars.||NET 2036||It will be magical for the human race if this happens by then. It will truly inspire us all.
|Point to point transport on Earth in an hour or so (using a BF rocket).||NIML||This will not happen without some major new breakthrough of which we currently have no inkling.
|Regular service of Hyperloop between two cities.||NIML||I can't help but be reminded of when Chuck Yeager described the Mercury program as "Spam in a can".
1AI and ML have been around for a long time already. I have been in pursuit of their magic for a long time. I have worked in both Artificial Intelligence and Machine Learning for over forty years. My 1977 Master’s thesis used Markov chains to prove the convergence of a particular machine learning algorithm. It was an abysmally terrible thesis.