Updated program, filled out required functionality. Cleaned up structure.