cleaned up errno handling.