more work on error handling.