Add IOPlugin

Do we do this now? +1 for generic, but need to adapt more client code now