not sure if this is actually required, though? shouldn't we just try to close and disregard errors?
splitting implementation into a separate package to potentially allow for other sorts of output, too.