Major refactoring, comments, and UML.

- Cleaned up some code
- Eliminated the useless interface, replaced with abstract class
- Cleaned up activities