another implimentation IO in Elm