support auto closeable