Renamed observation concept to error; result now uses the Value/HasValue pattern...