InputStream/OutputStream => Event Stream / Control Inversion