Add asynchronous functionality to io_schema

resolves #18