 We're going to begin constructing our architecture by building some data paths. We're going to have one data path for each of these different instructions that we've got. These data paths will contain all of the hardware required to implement one of these instructions. We'll look at these six instructions because we'll end up with slightly different data paths for each one of them. Some of them will be more complex than others. Our memory operations will also require the addition of a memory unit to access. Our add and add immediate instructions don't care much about memory, but our load and store word instructions will. Our branch equals and jump instructions are very different from the others, but they can still end up using a lot of the same hardware. Once we've built a data path for all six of these, we'll combine them back together, produce a data path that is potentially capable of implementing all six of those instructions.