Refactored to separate each section of the output into its own individual method