using internal flow control functions that favor I/O