Remove some unneeded comments.
diff --git a/TODO b/TODO
index 58a0d54..5a5b56e 100644
--- a/TODO
+++ b/TODO
@@ -145,104 +145,6 @@
 * read two zip entries interleaved
 
 
-I/O Methods
-===========
-One major headache for libzip portability (especially to Windows) is
-I/O, i.e. reading and writing from the file system.  Also, there
-have been requests to open zip archives from a memory buffer.  To
-address these issues, we'll introduce an I/O abstraction layer.
-
-  We'll reuse zip_source, since it already provides support for
-the reading part, adding high level abstraction of the additional
-operations needed. This way, newly written zip_sources can be used
-both for adding files into an archive as well as for accessing archives
-themselves.
-
-Specifically, we'll add these commands:
-
-ZIP_SOURCE_BEGIN_WRITE
-        Prepare for writing.  The written data will replace all
-        original data.  The file position is reset to 0.  (On POSIX
-        systems, this will create a temporary file and open it for
-        writing.)
-
-ZIP_SOURCE_WRITE
-        Write bytes of data, a la fwrite(3) (does not need to know
-        anything about the zip archive structure).
-
-ZIP_SOURCE_COMMIT_WRITE
-        Used after all data has been written successfully. (On
-        POSIX systems, this will replace the original file with
-        the temporary file, adapting permissions etc.)
-
-ZIP_SOURCE_REMOVE
-	Zip archive is empty. Is responsible for removing file, if
-	appropriate.
-
-ZIP_SOURCE_ROLLBACK_WRITE
-        Used to reset the zip archive to the previous state (e.g.
-        because writing failed) to restore original data if possible;
-        return an error otherwise.  (On POSIX systems, this will
-        delete the temporary file.)
-
-ZIP_SOURCE_SEEK
-        Set position for next read or write, a la fseek(3).
-
-ZIP_SOURCE_TELL
-        Report current position, a la ftell(3).
-
-ZIP_SOURCE_SUPPORTS
-        Query which commands are supported for this stream.  If a
-        file cannot be written to, this will report ZIP_SOURCE_BEGIN_WRITE
-        as not supported, even if the source type would support
-        write.  (This is used in zip_open to set global flags like
-        ZIP_AFL_RDONLY.)
-
-  We'll provide a zip_open variant that takes a zip_source argument
-used for reading/writing archives.  Using an enhanced version of
-zip_source_buffer, this can be used to read zip archives from memory.
-
-  zip_open itself will create a source from the file using a
-port-specific default implementation (POSIX vs. Windows vs. ...).
-
-  Once the details are finalized, we'll ask for volunteers for writing
-a Windows specific implementation.
-
-zip_source_XXX -> [I]
-[I] -> OPEN -> [R]
-[R] -> (SEEK|TELL|READ|STAT)* -> [R]
-[R] -> CLOSE -> [I]
-[I] -> BEGIN_WRITE -> [W]
-[W] -> (SEEK|TELL|WRITE)* -> [W]
-[W] -> (COMMIT_WRITE|ROLLBACK_WRITE) -> [I]
-[IR] -> REMOVE -> [X]
-[I] -> STAT -> [I]
-
-(no state change in case of error)
-
-always:
-* -> ERROR -> \1
-* -> SUPPORTS -> \1
-* -> FREE
-
-
-[-,-]
-[R,-]
-[-,W]
-[R,W]
-
-zip_source_XXX -> [-,-]
-[-,y] -> OPEN -> [R,y]
-[R,y] -> (SEEK|TELL|READ|STAT)* -> [R,y]
-[R,y] -> CLOSE -> [-,y]
-[x,-] -> BEGIN_WRITE -> [x,W]
-[x,W] -> (SEEK_WRITE|TELL_WRITE|WRITE)* -> [x,W]
-[x,W] -> (COMMIT_WRITE|ROLLBACK_WRITE) -> [x,-]
-[x,y] -> REMOVE -> [-,-]
-[x,y] -> STAT -> [x,y]
-[x,y] -> ERROR -> [x,y]
-[x,y] -> SUPPORTS -> [x,y]
-[x,y] -> FREE
 
 - document: zip_source_write: length can't be > ZIP_INT64_MAX
 - document: ZIP_SOURCE_CLOSE implementation can't return error
@@ -250,10 +152,6 @@
 
 - check for INT_MAX, UINT_MAX
 
-plan for merge:
-
-after merge:
-- direct reference to source and from upper layer are equivalent: only close/free if all are gone.
 - only allow multiple upper layers for sources that support seek
 D re-implement fix for OS X sandboxing (zip_archive_set_tempdir).
 - find out FSEEK_MAX/FTELL_MAX and use it