more IO formalisation