Refactor IOSystem