Cleanup and Interfaces

Some unnecessary files have been deleted, and interfaces are now used
instead of classes... for the most part