Refactored Solution 1

Using interfaces instead of a single massive .java file. Will continue
to apply this to all the problems.
Refactored Solutions 2 to 5

Restructing code so it's easier to read and run.