io: add multiple formatters support. Implement binary IO.

And random stuff