submit now use io, added tests