diff --git a/consensus/consensus.go b/consensus/consensus.go
index cb1a4fc77f951146e18fd3759a1d6533bf796d51..2bc719b3e05fb8975f8dc5fd5c1c096e50033bc6 100644
--- a/consensus/consensus.go
+++ b/consensus/consensus.go
@@ -17,43 +17,25 @@
 package consensus
 
 import (
-  config "github.com/eris-ltd/eris-db/config"
+  "fmt"
 
+  config      "github.com/eris-ltd/eris-db/config"
   definitions "github.com/eris-ltd/eris-db/definitions"
   tendermint  "github.com/eris-ltd/eris-db/consensus/tendermint"
 )
 
-type ConsensusEngine struct {
-  //
-  Communicator
-
-  // application manager
-
-}
-
 func LoadConsensusEngineInPipe(moduleConfig *config.ModuleConfig,
   pipe definitions.Pipe) error {
   switch moduleConfig.Name {
   case "tendermint" :
-    _, err := tendermint.NewTendermintNode(moduleConfig, pipe.GetApplication())
+    tendermintNode, err := tendermint.NewTendermintNode(moduleConfig,
+      pipe.GetApplication())
     if err != nil {
-      return err
+      return fmt.Errorf("Failed to load Tendermint node: %v", err)
+    }
+    if err := pipe.SetConsensusEngine(tendermintNode); err != nil {
+      return fmt.Errorf("Failed to hand Tendermint node to pipe: %v", err)
     }
   }
   return nil
 }
-
-func NewConsensusEngine(moduleConfig *config.ModuleConfig) {
-
-}
-
-type Communicator interface {
-  // Unicast()
-  Broadcast()
-}
-
-type ConsensusModule interface {
-  Start()
-}
-
-// func (consensusEngine *ConsensusEngine) setCommunicator (communicator *)
diff --git a/consensus/tendermint/tendermint.go b/consensus/tendermint/tendermint.go
index fbdf94f3bb47b1df56cbc6c6101bb35addf71b98..b57b75fcc503f092282429681655425321d02232 100644
--- a/consensus/tendermint/tendermint.go
+++ b/consensus/tendermint/tendermint.go
@@ -33,6 +33,7 @@ import (
   log "github.com/eris-ltd/eris-logger"
 
   config        "github.com/eris-ltd/eris-db/config"
+  definitions   "github.com/eris-ltd/eris-db/definitions"
   manager_types "github.com/eris-ltd/eris-db/manager/types"
   // files  "github.com/eris-ltd/eris-db/files"
 )
@@ -42,6 +43,10 @@ type TendermintNode struct {
   tmintConfig *TendermintConfig
 }
 
+// NOTE [ben] Compiler check to ensure TendermintNode successfully implements
+// eris-db/definitions.Consensus
+var _ definitions.ConsensusEngine = (*TendermintNode)(nil)
+
 func NewTendermintNode(moduleConfig *config.ModuleConfig,
   application manager_types.Application) (*TendermintNode, error) {
   // re-assert proper configuration for module
diff --git a/core/core.go b/core/core.go
index fc0941e45a2597d73e97b1f890d41d567ac2ff98..9aca75859f34cfc470614debe8bd52647a4abf65 100644
--- a/core/core.go
+++ b/core/core.go
@@ -58,10 +58,10 @@ func NewCore(chainId string, consensusConfig *config.ModuleConfig,
   // [x] from genesis
   // [x] create event switch
   // [x] give state and evsw to app
-  // give app to consensus
-  // create new Pipe
-  // give app
-  // create servers
+  // [x] give app to consensus
+  // [x] create new Pipe
+  // [x] give consensus to pipe
+  // [ ] create servers
   return &Core{}, fmt.Errorf("PLACEHOLDER")
 }
 
diff --git a/definitions/pipe.go b/definitions/pipe.go
index cb6df44fa061dcab35c0fcbce5260808f1903dae..1db83165085c1b32fad713fd6ede3956944fb477 100644
--- a/definitions/pipe.go
+++ b/definitions/pipe.go
@@ -44,6 +44,7 @@ type Pipe interface {
   Transactor() Transactor
   // NOTE: [ben] added to Pipe interface on 0.12 refactor
   GetApplication() manager_types.Application
+  SetConsensusEngine(consensus ConsensusEngine) error
 }
 
 type Accounts interface {
diff --git a/manager/eris-mint/pipe.go b/manager/eris-mint/pipe.go
index ecb8ccd3769b37cab42e75b34005b54d74ce7eec..74bc637313cb56a6b97b4e2f84cf0411778a8bfd 100644
--- a/manager/eris-mint/pipe.go
+++ b/manager/eris-mint/pipe.go
@@ -34,17 +34,19 @@ import (
 )
 
 type ErisMintPipe struct {
-  erisMintState *state.State
-  eventSwitch   *tendermint_events.EventSwitch
-  erisMint      *ErisMint
+  erisMintState   *state.State
+  eventSwitch     *tendermint_events.EventSwitch
+  erisMint        *ErisMint
   // Pipe implementations
-  accounts      definitions.Accounts
-  blockchain    definitions.Blockchain
-  consensus     definitions.Consensus
-  events        definitions.EventEmitter
-  namereg       definitions.NameReg
-  net           definitions.Net
-  transactor    definitions.Transactor
+  accounts        definitions.Accounts
+  blockchain      definitions.Blockchain
+  consensus       definitions.Consensus
+  events          definitions.EventEmitter
+  namereg         definitions.NameReg
+  net             definitions.Net
+  transactor      definitions.Transactor
+  // Consensus interface
+  consensusEngine definitions.ConsensusEngine
 }
 
 // NOTE [ben] Compiler check to ensure ErisMintPipe successfully implements
@@ -96,6 +98,7 @@ func NewErisMintPipe(moduleConfig *config.ModuleConfig,
     events:        events,
     namereg:       namereg,
     transactor:    transactor,
+    consensus:     nil,
   }, nil
 }
 
@@ -179,3 +182,13 @@ func (pipe *ErisMintPipe) Transactor() definitions.Transactor {
 func (pipe *ErisMintPipe) GetApplication() manager_types.Application {
   return pipe.erisMint
 }
+
+func (pipe *ErisMintPipe) SetConsensusEngine(
+  consensus definitions.ConsensusEngine) error {
+  if pipe.consensusEngine == nil {
+    pipe.consensusEngine = consensus
+  } else {
+    return fmt.Errorf("Failed to set consensus engine for pipe; already set")
+  }
+  return nil
+}
diff --git a/manager/eris-mint/state/state.go b/manager/eris-mint/state/state.go
index f22beb3ee67663c07d39186b9f88f168a9cee11f..9c7b49287bd67b813a34849273bd0263b7696718 100644
--- a/manager/eris-mint/state/state.go
+++ b/manager/eris-mint/state/state.go
@@ -398,7 +398,7 @@ func (s *State) SetFireable(evc events.Fireable) {
 // Genesis
 
 func MakeGenesisStateFromFile(db dbm.DB, genDocFile string) (*GenesisDoc, *State) {
-	jsonBlob, err := ioutil.ReadFile(genDocFile)
+  jsonBlob, err := ioutil.ReadFile(genDocFile)
 	if err != nil {
 		Exit(Fmt("Couldn't read GenesisDoc file: %v", err))
 	}