Started reworking IO