hide some private fields and add more docs
rename Writer.current to Writer._current
rename field io to _io