internal package
new ($error) Either gets an error object from outside or creates its own. Initialized empty until init gets called.