added AbstractBlockingProtocol and added error handling possibilities