implements beginning of io class