prepared for async operation
updated tests