Clarified the variable and member names, straightened out the code flow, fixes the (crashing) issue with the selections properly.
Also have a separate patch on top of this to move most of the code out of TerminalDisplay (my goal is to get TerminalDisplay.cpp below 3000 lines :-).