non-blocking processing