First IO implementation