Cleaned up code, added mutators for all classes, fixed printing and return functions, simplified interface