refactored some things to move toward further single-responibility. also refactored some of the output setters to make sure I wasnt sending old data, even if wasnt going to be shown to the user.