Turns out that my first method of handling \n make more sense in terms of code management. Also added the ability to scroll the terminal and added an example of multi colour text in the terminal