Initial Solution

I think the code functions correctly, but still have to test it and
make sure it meets the assignment requirements