improve - reactor io api model