Program is now passing all tests. Needs clean up.