diff --git "a/\041notes" "b/\041notes"
index 25596f0..63605f8 100644
--- "a/\041notes"
+++ "b/\041notes"
@@ -1,2 +1,9 @@
-curl -X POST "127.0.0.1:5556/v1/order1" -H "accept: */*" -H "Content-Type: application/json" -d "{\"beneficiaryIDDocumentCID\":\"\",\"extension\":{\"coin\":\"0\"}}"
-curl -X POST "127.0.0.1:5556/v1/order/secret1" -H "accept: */*" -H "Content-Type: application/json" -d "{\"orderReference\":\"1daef6ba-df9e-11e9-b3b8-acde48001122\",\"beneficiaryIDDocumentCID\":\"QmcyJqEMqNEEYHrNSyUY83CQCNwZ5yVan3SgaQ4NchsqsC\"}"
\ No newline at end of file
+
+Empty:
+ref=$(curl -s -X POST "127.0.0.1:5556/v1/order1" -H "accept: */*" -H "Content-Type: application/json" -d "{\"beneficiaryIDDocumentCID\":\"\",\"extension\":{\"coin\":\"0\"}}");sleep 4; curl -X POST "127.0.0.1:5556/v1/order/secret1" -H "accept: */*" -H "Content-Type: application/json" -d "{\"orderReference\":$ref,\"beneficiaryIDDocumentCID\":\"QmcyJqEMqNEEYHrNSyUY83CQCNwZ5yVan3SgaQ4NchsqsC\"}"
+
+
+Define at start:
+ref=$(curl -s -X POST "127.0.0.1:5556/v1/order1" -H "accept: */*" -H "Content-Type: application/json" -d "{\"beneficiaryIDDocumentCID\":\"QmcyJqEMqNEEYHrNSyUY83CQCNwZ5yVan3SgaQ4NchsqsC\",\"extension\":{\"coin\":\"0\"}}");sleep 4; curl -X POST "127.0.0.1:5556/v1/order/secret1" -H "accept: */*" -H "Content-Type: application/json" -d "{\"orderReference\":$ref,\"beneficiaryIDDocumentCID\":\"\"}"
+
+
diff --git a/cmd/service/main.go b/cmd/service/main.go
index 944d373..9548f0a 100644
--- a/cmd/service/main.go
+++ b/cmd/service/main.go
@@ -146,11 +146,6 @@
 		return errors.Wrap(err, "init logger")
 	}
 
-	go tendermint.Subscribe(logger, cfg.Node.NodeID, cfg.HTTP.ListenAddr)
-	if err != nil {
-		return errors.Wrap(err, "init Tendermint Blockchain")
-	}
-
 	// Create KV store
 	logger.Info("Datastore type: %s", cfg.Node.Datastore)
 	store, err := initDataStore(cfg.Node.Datastore)
@@ -158,6 +153,12 @@
 		return errors.Wrap(err, "init datastore")
 	}
 
+	//Connect to Blockchain - Tendermint
+	go tendermint.Subscribe(store, logger, cfg.Node.NodeID, cfg.HTTP.ListenAddr)
+	if err != nil {
+		return errors.Wrap(err, "init Tendermint Blockchain")
+	}
+
 	logger.Info("IPFS connector type: %s", cfg.IPFS.Connector)
 	var ipfsConnector ipfs.Connector
 	switch cfg.IPFS.Connector {
diff --git a/cmd/servicetester/tendertest1.sh b/cmd/servicetester/tendertest1.sh
new file mode 100755
index 0000000..64fc139
--- /dev/null
+++ b/cmd/servicetester/tendertest1.sh
@@ -0,0 +1,8 @@
+ref=$(curl -s -X POST "127.0.0.1:5556/v1/order1" -H "accept: */*" -H "Content-Type: application/json" -d "{\"beneficiaryIDDocumentCID\":\"\",\"extension\":{\"coin\":\"0\"}}")
+
+#sleep long enough for blockchain to catch up
+sleep 4
+
+curl -X POST "127.0.0.1:5556/v1/order/secret1" -H "accept: */*" -H "Content-Type: application/json" -d "{\"orderReference\":$ref,\"beneficiaryIDDocumentCID\":\"QmcyJqEMqNEEYHrNSyUY83CQCNwZ5yVan3SgaQ4NchsqsC\"}"
+
+
diff --git a/pkg/bitcoinplugin/helpers.go b/pkg/bitcoinplugin/helpers.go
index b1a15f2..310d833 100644
--- a/pkg/bitcoinplugin/helpers.go
+++ b/pkg/bitcoinplugin/helpers.go
@@ -125,7 +125,7 @@
 	coinType := order.Coin
 	var pubKeyPart1of2 string
 
-	if beneficiaryIDDocumentCID == "" {
+	if order.BeneficiaryType == documents.OrderDocument_Beneficiary_Unknown_at_Start {
 		//There is no beneficiary ID so we do it all locally based on
 		//Retrieve the Local Seed
 		seedHex, err := common.RetrieveSeed(s.Store, order.Reference)
@@ -148,7 +148,7 @@
 		}
 	}
 
-	if beneficiaryIDDocumentCID != "" {
+	if order.BeneficiaryType == documents.OrderDocument_Beneficiary_Known_at_start {
 		//There is a BeneficiaryID use it to generate the key
 		//Get beneficiary's identity out of IPFS
 		id := &documents.IDDoc{}
@@ -173,7 +173,6 @@
 		return "", "", err
 	}
 	return finalPublicKey, addressForPublicKey, nil
-
 }
 
 //AddPrivateKeys Perform eliptical key additon on 2 privates keys
diff --git a/pkg/defaultservice/fulfill.go b/pkg/defaultservice/fulfill.go
index 4a8c827..6f457c8 100644
--- a/pkg/defaultservice/fulfill.go
+++ b/pkg/defaultservice/fulfill.go
@@ -82,6 +82,7 @@
 		SenderID:    nodeID,
 		RecipientID: []string{order.PrincipalCID, nodeID},
 		Payload:     marshaledRequest,
+		Tags:        map[string]string{"reference": order.Reference},
 	}
 	return tendermint.PostToChain(chainTX, "FulfillOrder")
 
@@ -144,6 +145,7 @@
 		SenderID:    nodeID,
 		RecipientID: []string{s.MasterFiduciaryNodeID(), order.BeneficiaryCID},
 		Payload:     marshaledRequest,
+		Tags:        map[string]string{"reference": order.Reference},
 	}
 	return tendermint.PostToChain(chainTX, "FulfillOrderSecret")
 }
diff --git a/pkg/defaultservice/order.go b/pkg/defaultservice/order.go
index 95d8697..778189d 100644
--- a/pkg/defaultservice/order.go
+++ b/pkg/defaultservice/order.go
@@ -121,97 +121,6 @@
 	return finalPrivateKey, finalPublicKey, nil, err
 }
 
-// OrderSecret -
-//func (s *Service) OrderSecret(req *api.OrderSecretRequest) (*api.OrderSecretResponse, error) {
-// orderReference := req.OrderReference
-// var orderPart2CID string
-// if err := s.Store.Get("order", orderReference, &orderPart2CID); err != nil {
-// 	return nil, err
-// }
-
-// nodeID := s.NodeID()
-// recipientList, err := common.BuildRecipientList(s.Ipfs, nodeID, s.MasterFiduciaryNodeID())
-// if err != nil {
-// 	return nil, err
-// }
-// remoteIDDoc, err := common.RetrieveIDDocFromIPFS(s.Ipfs, s.MasterFiduciaryNodeID())
-// if err != nil {
-// 	return nil, err
-// }
-
-// _, _, blsSK, sikeSK, err := common.RetrieveIdentitySecrets(s.Store, nodeID)
-// if err != nil {
-// 	return nil, err
-// }
-
-// //Retrieve the order from IPFS
-
-// order, err := common.RetrieveOrderFromIPFS(s.Ipfs, orderPart2CID, sikeSK, nodeID, remoteIDDoc.BLSPublicKey)
-// if err != nil {
-// 	return nil, errors.Wrap(err, "Fail to retrieve Order from IPFS")
-// }
-
-// if err := s.Plugin.ValidateOrderSecretRequest(req, *order); err != nil {
-// 	return nil, err
-// }
-
-// var beneficiariesSikeSK []byte
-// var beneficiaryCID string
-
-// if req.BeneficiaryIDDocumentCID != "" {
-// 	beneficiaryCID = req.BeneficiaryIDDocumentCID
-// } else {
-// 	beneficiaryCID = order.BeneficiaryCID
-// }
-
-// _, beneficiariesSeed, _, beneficiariesSikeSK, err := common.RetrieveIdentitySecrets(s.Store, beneficiaryCID)
-// if err != nil {
-// 	return nil, err
-// }
-
-// //Create a piece of data that is destined for the beneficiary, passed via the Master Fiduciary
-
-// beneficiaryEncryptedData, extension, err := s.Plugin.ProduceBeneficiaryEncryptedData(blsSK, order, req)
-// if err != nil {
-// 	return nil, err
-// }
-
-// //Create a request Object in IPFS
-// orderPart3CID, err := common.CreateAndStorePart3(s.Ipfs, s.Store, order, orderPart2CID, nodeID, beneficiaryEncryptedData, recipientList)
-// if err != nil {
-// 	return nil, err
-// }
-
-// //Post the address of the updated doc to the custody node
-// request := &api.FulfillOrderSecretRequest{
-// 	SenderDocumentCID: nodeID,
-// 	OrderPart3CID:     orderPart3CID,
-// 	Extension:         extension,
-// }
-// response, err := s.MasterFiduciaryServer.FulfillOrderSecret(request)
-// if err != nil {
-// 	return nil, err
-// }
-
-// //Retrieve the response Order from IPFS
-// orderPart4, err := common.RetrieveOrderFromIPFS(s.Ipfs, response.OrderPart4CID, sikeSK, nodeID, remoteIDDoc.BLSPublicKey)
-// if err != nil {
-// 	return nil, err
-// }
-
-// finalPrivateKey, finalPublicKey, ext, err := s.Plugin.ProduceFinalSecret(beneficiariesSeed, beneficiariesSikeSK, order, orderPart4, beneficiaryCID)
-// if err != nil {
-// 	return nil, err
-// }
-
-// return &api.OrderSecretResponse{
-// 	Secret:         finalPrivateKey,
-// 	Commitment:     finalPublicKey,
-// 	OrderReference: order.Reference,
-// 	Extension:      ext,
-// }, nil
-//}
-
 // Order1 -
 func (s *Service) Order1(req *api.OrderRequest) (string, error) {
 	if err := s.Plugin.ValidateOrderRequest(req); err != nil {
@@ -226,11 +135,6 @@
 		return "", err
 	}
 
-	// remoteIDDoc, err := common.RetrieveIDDocFromIPFS(s.Ipfs, s.MasterFiduciaryNodeID())
-	// if err != nil {
-	// 	return "", err
-	// }
-
 	//Create Order
 	order, err := common.CreateNewDepositOrder(beneficiaryIDDocumentCID, nodeID)
 	if err != nil {
@@ -263,74 +167,21 @@
 		SenderID:    nodeID,
 		RecipientID: []string{s.MasterFiduciaryNodeID(), nodeID},
 		Payload:     marshaledRequest,
+		Tags:        map[string]string{"reference": order.Reference},
 	}
-	//curl --data-binary '{"jsonrpc":"2.0","id":"anything","method":"broadcast_tx_commit","params": {"tx": "YWFhcT1hYWFxCg=="}}' -H 'content-type:text/plain;' http://localhost:26657
-
 	tendermint.PostToChain(chainTX, "Order1")
 	return order.Reference, nil
 }
 
 // Order2 -
 func (s *Service) Order2(req *api.FulfillOrderResponse) (string, error) {
-	// if err := s.Plugin.ValidateOrderRequest(req); err != nil {
-	// 	return "", err
-	// }
-
-	// //Initialise values from Request object
-	// beneficiaryIDDocumentCID := req.BeneficiaryIDDocumentCID
 	nodeID := s.NodeID()
-	// recipientList, err := common.BuildRecipientList(s.Ipfs, nodeID, s.MasterFiduciaryNodeID())
-	// if err != nil {
-	// 	return "", err
-	// }
 
 	remoteIDDoc, err := common.RetrieveIDDocFromIPFS(s.Ipfs, s.MasterFiduciaryNodeID())
 	if err != nil {
 		return "", err
 	}
 
-	// //Create Order
-	// order, err := common.CreateNewDepositOrder(beneficiaryIDDocumentCID, nodeID)
-	// if err != nil {
-	// 	return "", err
-	// }
-
-	// fulfillExtension, err := s.Plugin.PrepareOrderPart1(order, req.Extension)
-	// if err != nil {
-	// 	return "", err
-	// }
-
-	// //Write Order to IPFS
-	// orderPart1CID, err := common.WriteOrderToIPFS(nodeID, s.Ipfs, s.Store, nodeID, order, recipientList)
-	// if err != nil {
-	// 	return "", err
-	// }
-
-	// //Fullfill the order on the remote Server
-	// request := &api.FulfillOrderRequest{
-	// 	DocumentCID:   nodeID,
-	// 	OrderPart1CID: orderPart1CID,
-	// 	Extension:     fulfillExtension,
-	// }
-
-	// marshaledRequest, _ := json.Marshal(request)
-
-	// //Write the requests to the chain
-	// chainTX := &api.BlockChainTX{
-	// 	Type:        api.TXFullfullRequest,
-	// 	SenderID:    nodeID,
-	// 	RecipientID: s.MasterFiduciaryNodeID(),
-	// 	Payload:     marshaledRequest,
-	// }
-	// //curl --data-binary '{"jsonrpc":"2.0","id":"anything","method":"broadcast_tx_commit","params": {"tx": "YWFhcT1hYWFxCg=="}}' -H 'content-type:text/plain;' http://localhost:26657
-
-	// tendermint.PostToChain(chainTX)
-
-	//  response, err := s.MasterFiduciaryServer.FulfillOrder(request)
-	//  if err != nil {
-	//  	return "", errors.Wrap(err, "Contacting Fiduciary")
-	//  }
-
 	//Get the updated order out of IPFS
 	_, _, _, sikeSK, err := common.RetrieveIdentitySecrets(s.Store, nodeID)
 	if err != nil {
@@ -365,7 +216,7 @@
 	//Write the requests to the chain
 	chainTX := &api.BlockChainTX{
 		Processor:   api.TXOrderSecretResponse,
-		SenderID:    nodeID,
+		SenderID:    "",
 		RecipientID: []string{s.MasterFiduciaryNodeID(), nodeID},
 		Payload:     marshaledRequest,
 		Tags:        map[string]string{"reference": updatedOrder.Reference},
@@ -416,12 +267,11 @@
 		return "", err
 	}
 
-	//Create a piece of data that is destined for the beneficiary, passed via the Master Fiduciary
-
 	if req.BeneficiaryIDDocumentCID != "" {
 		order.BeneficiaryCID = req.BeneficiaryIDDocumentCID
 	}
 
+	//Create a piece of data that is destined for the beneficiary, passed via the Master Fiduciary
 	beneficiaryEncryptedData, extension, err := s.Plugin.ProduceBeneficiaryEncryptedData(blsSK, order, req)
 	if err != nil {
 		return "", err
@@ -448,9 +298,8 @@
 		SenderID:    nodeID,
 		RecipientID: []string{s.MasterFiduciaryNodeID()},
 		Payload:     marshaledRequest,
+		Tags:        map[string]string{"reference": order.Reference},
 	}
-	//curl --data-binary '{"jsonrpc":"2.0","id":"anything","method":"broadcast_tx_commit","params": {"tx": "YWFhcT1hYWFxCg=="}}' -H 'content-type:text/plain;' http://localhost:26657
-
 	return tendermint.PostToChain(chainTX, "OrderSecret1")
 }
 
@@ -467,32 +316,19 @@
 		return "", err
 	}
 
-	// localIDDoc, err := common.RetrieveIDDocFromIPFS(s.Ipfs, s.NodeID())
-	// if err != nil {
-	// 	return "", err
-	// }
-
 	//Retrieve the response Order from IPFS
 	orderPart4, err := common.RetrieveOrderFromIPFS(s.Ipfs, req.OrderPart4CID, sikeSK, nodeID, remoteIDDoc.BLSPublicKey)
-	// if err != nil {
-	// 	//check if we are re-trying the call, so the OrderDoc is locally signed
-	// 	orderPart4, err = common.RetrieveOrderFromIPFS(s.Ipfs, req.OrderPart4CID, sikeSK, nodeID, localIDDoc.BLSPublicKey)
-	// 	if err != nil {
-	// 		return "", errors.Wrap(err, "Fail to retrieve Order from IPFS")
-	// 	}
-	// }
 
-	var beneficiariesSikeSK []byte
-	var beneficiaryCID string
+	if orderPart4.BeneficiaryCID != nodeID {
+		return "", errors.New("Invalid Processor")
+	}
 
-	beneficiaryCID = orderPart4.BeneficiaryCID
-
-	_, beneficiariesSeed, _, beneficiariesSikeSK, err := common.RetrieveIdentitySecrets(s.Store, beneficiaryCID)
+	_, seed, _, sikeSK, err := common.RetrieveIdentitySecrets(s.Store, nodeID)
 	if err != nil {
 		return "", err
 	}
 
-	finalPrivateKey, finalPublicKey, ext, err := s.Plugin.ProduceFinalSecret(beneficiariesSeed, beneficiariesSikeSK, orderPart4, orderPart4, beneficiaryCID)
+	finalPrivateKey, finalPublicKey, ext, err := s.Plugin.ProduceFinalSecret(seed, sikeSK, orderPart4, orderPart4, nodeID)
 	if err != nil {
 		return "", err
 	}
@@ -510,11 +346,9 @@
 	chainTX := &api.BlockChainTX{
 		Processor:   api.TXOrderSecretResponse, //NONE
 		SenderID:    "",                        // so we can view it
-		RecipientID: []string{beneficiaryCID},
+		RecipientID: []string{nodeID},          //don't send this to chain, seed compromise becomes fatal, sent just debugging
 		Payload:     marshaledRequest,
+		Tags:        map[string]string{"reference": orderPart4.Reference, "part": "4"},
 	}
-	//curl --data-binary '{"jsonrpc":"2.0","id":"anything","method":"broadcast_tx_commit","params": {"tx": "YWFhcT1hYWFxCg=="}}' -H 'content-type:text/plain;' http://localhost:26657
-
 	return tendermint.PostToChain(chainTX, "OrderSecret2")
-
 }
diff --git a/pkg/tendermint/config.go b/pkg/tendermint/config.go
index 6d20001..510189d 100644
--- a/pkg/tendermint/config.go
+++ b/pkg/tendermint/config.go
@@ -1,5 +1,6 @@
 package tendermint
 
 const (
-	node = "127.0.0.1:26657"
+	//node = "127.0.0.1:26657"
+	node = "34.246.173.153:26657"
 )
diff --git a/pkg/tendermint/tendermint.go b/pkg/tendermint/tendermint.go
index ab162bf..1e46497 100644
--- a/pkg/tendermint/tendermint.go
+++ b/pkg/tendermint/tendermint.go
@@ -54,7 +54,9 @@
 	base64EncodedTX := base64.StdEncoding.EncodeToString(serializedTX)
 
 	body := strings.NewReader("{\"jsonrpc\":\"2.0\",\"id\":\"anything\",\"method\":\"broadcast_tx_commit\",\"params\": {\"tx\": \"" + base64EncodedTX + "\"}}")
-	req, err := http.NewRequest("POST", "http://"+node+"", body)
+	url := "http://" + node + ""
+
+	req, err := http.NewRequest("POST", url, body)
 	if err != nil {
 		print("Error posting to Blockchain")
 		return "", err
diff --git a/pkg/tendermint/websockets.go b/pkg/tendermint/websockets.go
index 1e21a12..aba13de 100644
--- a/pkg/tendermint/websockets.go
+++ b/pkg/tendermint/websockets.go
@@ -8,16 +8,23 @@
 	"os/signal"
 	"syscall"
 
+	"github.com/apache/incubator-milagro-dta/libs/datastore"
 	"github.com/apache/incubator-milagro-dta/libs/logger"
 	"github.com/apache/incubator-milagro-dta/pkg/api"
 	tmclient "github.com/tendermint/tendermint/rpc/client"
 	tmtypes "github.com/tendermint/tendermint/types"
 )
 
-//Subscribe - Connect to the Tendermint websocket to collect events
-func Subscribe(logger *logger.Logger, nodeID string, listenPort string) error {
+func catchUp(store *datastore.Store, logger *logger.Logger, nodeID string, listenPort string) error {
 
-	//tmlogger := log2.NewTMLogger(log.NewSyncWriter(os.Stdout))
+	return nil
+}
+
+//Subscribe - Connect to the Tendermint websocket to collect events
+func Subscribe(store *datastore.Store, logger *logger.Logger, nodeID string, listenPort string) error {
+
+	//first catch up to Tip of chain
+	//catchUp(store, logger, nodeID, listenPort)
 
 	client := tmclient.NewHTTP("tcp://"+node+"", "/websocket")
 	//client.SetLogger(tmlogger)
@@ -28,6 +35,7 @@
 	}
 	defer client.Stop()
 
+	//curl "34.246.173.153:26657/tx_search?query=\"tag.part=4%20AND%20tag.reference='579a2864-e100-11e9-aaf4-acde48001122'\""
 	query := "tag.recipient='" + nodeID + "'"
 	//query := "tm.event = 'Tx'"
 
