This commit contains a lot of skeleton code. The basics of the classes are set up and some method headers are defined. There is also some pseudo code written. There is not much actual implementation code though. This commit is intended to provide a wire frame that will be helpful in moving forward with our detailed designs.