Improved some abstractions.
Removed checking unrecoverable error conditions.