redesign xicecat to use asynchronous io