Refactor IOEdit into a class