Mostly rewrote the whole thing
Made support more user specified

Now the user must choose reader and writer classes and IO doesn't guess anything