Refactored .../io