Before we get into creating and testing our own custom problem, let's talk about a more general problem. We have already outlined what we define as a problem earlier in this chapter, but now is a good time to show you the code for our base object Problem before we design our own. So, let's move on.