simplification
implement Fd::close()
clean up code