do we need to check the return value of close()?