maybe implement `Closeable`?