Moved around the class responsibilities a bit to clean up the messaging