Reworked Everything

Neatly organized, commented everything, loop only once, use
StringBuilders, detect unknown spaces, and show error messages.