Not written up with comments or even very clean at the moment. Trying to decide between exceptions and YAML or no exceptions but manual parsing for JSON config file. Or something else entirely...