added getTerminalSize, added a LOT of formatting