Implement IO and IO factory.