added blocking interface