added a interface for async worker processing