diff --git a/plugins/tangle/approvers.go b/plugins/tangle/approvers.go
index fd4461aa1e3cac8e3619652f1731df050f206b68..38d44aa9081d62e6f47710cf31c8c2c10110d042 100644
--- a/plugins/tangle/approvers.go
+++ b/plugins/tangle/approvers.go
@@ -5,7 +5,6 @@ import (
 	"github.com/iotaledger/goshimmer/packages/datastructure"
 	"github.com/iotaledger/goshimmer/packages/errors"
 	"github.com/iotaledger/goshimmer/packages/model/approvers"
-	"github.com/iotaledger/hive.go/node"
 	"github.com/iotaledger/hive.go/typeutils"
 	"github.com/iotaledger/iota.go/trinary"
 )
@@ -75,7 +74,7 @@ const (
 
 var approversDatabase database.Database
 
-func configureApproversDatabase(plugin *node.Plugin) {
+func configureApproversDatabase() {
 	if db, err := database.Get("approvers"); err != nil {
 		panic(err)
 	} else {
diff --git a/plugins/tangle/bundle.go b/plugins/tangle/bundle.go
index bd55c6e67e0cfd8eb22cc3a02d75fc142b4ac93c..fa607ba127fd374028bff25259ef55c92c9d96a5 100644
--- a/plugins/tangle/bundle.go
+++ b/plugins/tangle/bundle.go
@@ -5,7 +5,6 @@ import (
 	"github.com/iotaledger/goshimmer/packages/datastructure"
 	"github.com/iotaledger/goshimmer/packages/errors"
 	"github.com/iotaledger/goshimmer/packages/model/bundle"
-	"github.com/iotaledger/hive.go/node"
 	"github.com/iotaledger/hive.go/typeutils"
 	"github.com/iotaledger/iota.go/trinary"
 )
@@ -79,7 +78,7 @@ const (
 
 var bundleDatabase database.Database
 
-func configureBundleDatabase(plugin *node.Plugin) {
+func configureBundleDatabase() {
 	if db, err := database.Get("bundle"); err != nil {
 		panic(err)
 	} else {
diff --git a/plugins/tangle/plugin.go b/plugins/tangle/plugin.go
index 62006c6be990ea0ef7f8465906706bab07bace40..d7aa7c8f3f1925564cec7f35f8e2b774fcb5fe3f 100644
--- a/plugins/tangle/plugin.go
+++ b/plugins/tangle/plugin.go
@@ -10,16 +10,16 @@ import (
 var PLUGIN = node.NewPlugin("Tangle", node.Enabled, configure, run)
 var log = logger.NewLogger("Tangle")
 
-func configure(plugin *node.Plugin) {
-	configureTransactionDatabase(plugin)
-	configureTransactionMetaDataDatabase(plugin)
-	configureApproversDatabase(plugin)
-	configureBundleDatabase(plugin)
-	configureSolidifier(plugin)
+func configure(*node.Plugin) {
+	configureTransactionDatabase()
+	configureTransactionMetaDataDatabase()
+	configureApproversDatabase()
+	configureBundleDatabase()
+	configureSolidifier()
 }
 
-func run(plugin *node.Plugin) {
-	runSolidifier(plugin)
+func run(*node.Plugin) {
+	runSolidifier()
 }
 
 // endregion ///////////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/plugins/tangle/solidifier.go b/plugins/tangle/solidifier.go
index af7b07c525bde46ee7cf1b047aa300b129b09ac6..d3d9127167e4397804df5c3af0f112197722c07a 100644
--- a/plugins/tangle/solidifier.go
+++ b/plugins/tangle/solidifier.go
@@ -13,7 +13,6 @@ import (
 	"github.com/iotaledger/goshimmer/packages/workerpool"
 	"github.com/iotaledger/hive.go/daemon"
 	"github.com/iotaledger/hive.go/events"
-	"github.com/iotaledger/hive.go/node"
 	"github.com/iotaledger/iota.go/trinary"
 )
 
@@ -26,9 +25,9 @@ var (
 	unsolidTxs *UnsolidTxs
 )
 
-func configureSolidifier(plugin *node.Plugin) {
+func configureSolidifier() {
 	workerPool = workerpool.New(func(task workerpool.Task) {
-		processMetaTransaction(plugin, task.Param(0).(*meta_transaction.MetaTransaction))
+		processMetaTransaction(task.Param(0).(*meta_transaction.MetaTransaction))
 
 		task.Return(nil)
 	}, workerpool.WorkerCount(WORKER_COUNT), workerpool.QueueSize(10000))
@@ -46,7 +45,7 @@ func configureSolidifier(plugin *node.Plugin) {
 	}))
 }
 
-func runSolidifier(plugin *node.Plugin) {
+func runSolidifier() {
 	log.Info("Starting Solidifier ...")
 
 	daemon.BackgroundWorker("Tangle Solidifier", func(shutdownSignal <-chan struct{}) {
@@ -54,7 +53,7 @@ func runSolidifier(plugin *node.Plugin) {
 		workerPool.Start()
 		<-shutdownSignal
 		log.Info("Stopping Solidifier ...")
-		workerPool.Stop()
+		workerPool.StopAndWait()
 		log.Info("Stopping Solidifier ... done")
 	})
 }
@@ -169,7 +168,7 @@ func propagateSolidity(transactionHash trinary.Trytes) errors.IdentifiableError
 	return nil
 }
 
-func processMetaTransaction(plugin *node.Plugin, metaTransaction *meta_transaction.MetaTransaction) {
+func processMetaTransaction(metaTransaction *meta_transaction.MetaTransaction) {
 	var newTransaction bool
 	if tx, err := GetTransaction(metaTransaction.GetHash(), func(transactionHash trinary.Trytes) *value_transaction.ValueTransaction {
 		newTransaction = true
@@ -179,11 +178,11 @@ func processMetaTransaction(plugin *node.Plugin, metaTransaction *meta_transacti
 		log.Errorf("Unable to load transaction %s: %s", metaTransaction.GetHash(), err.Error())
 	} else if newTransaction {
 		updateUnsolidTxs(tx)
-		processTransaction(plugin, tx)
+		processTransaction(tx)
 	}
 }
 
-func processTransaction(plugin *node.Plugin, transaction *value_transaction.ValueTransaction) {
+func processTransaction(transaction *value_transaction.ValueTransaction) {
 	Events.TransactionStored.Trigger(transaction)
 
 	transactionHash := transaction.GetHash()
diff --git a/plugins/tangle/transaction.go b/plugins/tangle/transaction.go
index aeb4c915affcddfbbae05a7c6594edccb96db7bf..31edfc4f8c478aa4dd927e226c719ad3dfc53699 100644
--- a/plugins/tangle/transaction.go
+++ b/plugins/tangle/transaction.go
@@ -5,7 +5,6 @@ import (
 	"github.com/iotaledger/goshimmer/packages/datastructure"
 	"github.com/iotaledger/goshimmer/packages/errors"
 	"github.com/iotaledger/goshimmer/packages/model/value_transaction"
-	"github.com/iotaledger/hive.go/node"
 	"github.com/iotaledger/hive.go/typeutils"
 	"github.com/iotaledger/iota.go/trinary"
 )
@@ -76,7 +75,7 @@ const (
 
 var transactionDatabase database.Database
 
-func configureTransactionDatabase(plugin *node.Plugin) {
+func configureTransactionDatabase() {
 	if db, err := database.Get("transaction"); err != nil {
 		panic(err)
 	} else {
diff --git a/plugins/tangle/transaction_metadata.go b/plugins/tangle/transaction_metadata.go
index e1032ed635b284814109bd0f1a4bcf86f3208635..6713ecc8b006496044a3c85e85d2e4a6a5124729 100644
--- a/plugins/tangle/transaction_metadata.go
+++ b/plugins/tangle/transaction_metadata.go
@@ -5,7 +5,6 @@ import (
 	"github.com/iotaledger/goshimmer/packages/datastructure"
 	"github.com/iotaledger/goshimmer/packages/errors"
 	"github.com/iotaledger/goshimmer/packages/model/transactionmetadata"
-	"github.com/iotaledger/hive.go/node"
 	"github.com/iotaledger/hive.go/typeutils"
 	"github.com/iotaledger/iota.go/trinary"
 )
@@ -76,7 +75,7 @@ const (
 
 var transactionMetadataDatabase database.Database
 
-func configureTransactionMetaDataDatabase(plugin *node.Plugin) {
+func configureTransactionMetaDataDatabase() {
 	if db, err := database.Get("transactionMetadata"); err != nil {
 		panic(err)
 	} else {