new take on synchronized I/O