Update for more advanced error checking

Partial rebuild, added multiple new features, looking to add dynamic
error checking on the fly, with less intrusive error messages and an
easier UI system