Wrote some code for some of the functions. This code is just a jump off point and not the finished implementation