diff --git a/cmd/gosdn-tview/views/datbaseStatusView.go b/cmd/gosdn-tview/views/datbaseStatusView.go
new file mode 100644
index 0000000000000000000000000000000000000000..2e9a268666a054fab89b5ddef1ed28dc6c65385f
--- /dev/null
+++ b/cmd/gosdn-tview/views/datbaseStatusView.go
@@ -0,0 +1,43 @@
+package views
+
+import (
+	"code.fbi.h-da.de/cocsn/gosdn/cmd/gosdn-tview/app"
+	"github.com/rivo/tview"
+	"time"
+)
+
+type DatabaseStatusView struct {
+	databaseStatusView *tview.TextView
+}
+
+func NewDatabaseStatusView(app *app.App) *DatabaseStatusView {
+	dv := &DatabaseStatusView{
+		databaseStatusView: tview.NewTextView(),
+	}
+	dv.databaseStatusView.
+		SetDynamicColors(true).
+		SetTextAlign(tview.AlignCenter).
+		SetRegions(true).
+		SetBorder(true).
+		SetTitle("Database")
+
+	go databaseTicker(dv)
+
+	return dv
+}
+
+func (dv *DatabaseStatusView) GetContent() tview.Primitive {
+	return dv.databaseStatusView
+}
+
+func (dv *DatabaseStatusView) SetContent(s string) {
+	dv.databaseStatusView.Clear()
+	dv.databaseStatusView.SetText(s)
+}
+
+func databaseTicker(dv *DatabaseStatusView) {
+	ticker := time.NewTicker(5 * time.Second)
+	for t := range ticker.C {
+		dv.SetContent(t.String())
+	}
+}
diff --git a/cmd/gosdn-tview/views/footerView.go b/cmd/gosdn-tview/views/footerView.go
new file mode 100644
index 0000000000000000000000000000000000000000..f998d7ba5e973a3233f0b00c1c2ff880697e531c
--- /dev/null
+++ b/cmd/gosdn-tview/views/footerView.go
@@ -0,0 +1,35 @@
+package views
+
+import (
+	"code.fbi.h-da.de/cocsn/gosdn/cmd/gosdn-tview/app"
+	"github.com/rivo/tview"
+	"google.golang.org/grpc"
+)
+
+type FooterView struct {
+	footerView         *tview.Flex
+	databaseStatusView *DatabaseStatusView
+	gRPCStatusView     *GRPCStatusView
+}
+
+func NewFooterView(app *app.App, conn *grpc.ClientConn) *FooterView {
+
+	fw := &FooterView{
+		footerView:         tview.NewFlex(),
+		databaseStatusView: NewDatabaseStatusView(app),
+		gRPCStatusView:     NewGRPCStatusView(app, conn),
+	}
+	fw.footerView.
+		SetBorder(true).
+		SetTitle("Status")
+
+	fw.footerView.
+		AddItem(fw.gRPCStatusView.GetContent(), 0, 1, false).
+		AddItem(fw.databaseStatusView.GetContent(), 0, 1, false)
+
+	return fw
+}
+
+func (fw *FooterView) GetContent() tview.Primitive {
+	return fw.footerView
+}
diff --git a/cmd/gosdn-tview/views/gRPCStatusView.go b/cmd/gosdn-tview/views/gRPCStatusView.go
index 1c6020b6732aed6616928823b2906de196f963fb..3e522db7f18237e8533970fdf29f98233b6aff0e 100644
--- a/cmd/gosdn-tview/views/gRPCStatusView.go
+++ b/cmd/gosdn-tview/views/gRPCStatusView.go
@@ -11,23 +11,25 @@ type GRPCStatusView struct {
 	gRPCStatusView *tview.TextView
 }
 
-//TODO: change to grpcStatusView
 func NewGRPCStatusView(app *app.App, conn *grpc.ClientConn) *GRPCStatusView {
-	//TODO: change to uses FlexBox if there is more to display in the header
 	sv := &GRPCStatusView{
 		gRPCStatusView: tview.NewTextView(),
 	}
 
 	sv.gRPCStatusView.
+		SetDynamicColors(true).
+		SetTextAlign(tview.AlignCenter).
 		SetRegions(true).
 		SetBorder(true).
 		SetTitle("gRPC")
 
+	//TODO: maybe there is another way to do this.
+	//		pretty ugly atm, since it re-draws every 5 seconds...
 	sv.gRPCStatusView.SetChangedFunc(func() {
 		app.Draw()
 	})
 
-	go goSDNTicker(sv, conn)
+	go gRPCTicker(sv, conn)
 
 	return sv
 }
@@ -41,9 +43,14 @@ func (sv *GRPCStatusView) SetContent(s string) {
 	sv.gRPCStatusView.SetText(s)
 }
 
-func goSDNTicker(sv *GRPCStatusView, conn *grpc.ClientConn) {
+func gRPCTicker(sv *GRPCStatusView, conn *grpc.ClientConn) {
+	//TODO: refactor -> get rid of hardcoded values
 	ticker := time.NewTicker(5 * time.Second)
 	for range ticker.C {
-		sv.SetContent(conn.GetState().String())
+		if str := conn.GetState().String(); str == "READY" || str == "IDLE" {
+			sv.SetContent("[green]" + "connected")
+		} else {
+			sv.SetContent("[red]" + "disconnected")
+		}
 	}
 }
diff --git a/cmd/gosdn-tview/views/mainView.go b/cmd/gosdn-tview/views/mainView.go
index b5123b89e469a5100aa2fd76c1fa5ee465c5e696..e69d74dc6800d43a67a2989b3d6100224e7dccb5 100644
--- a/cmd/gosdn-tview/views/mainView.go
+++ b/cmd/gosdn-tview/views/mainView.go
@@ -12,7 +12,7 @@ type MainView struct {
 	commandsListView   *CommandListView
 	resultAndInputView *ResultAndInputView
 	headerView         *HeaderView
-	goSDNStatusView    *GRPCStatusView
+	footerView         *FooterView
 }
 
 func NewMainView(app *app.App, conn *grpc.ClientConn) *MainView {
@@ -22,15 +22,15 @@ func NewMainView(app *app.App, conn *grpc.ClientConn) *MainView {
 		commandsListView:   NewCommandListView(),
 		resultAndInputView: NewResultAndInputView(),
 		headerView:         NewHeaderView(),
-		goSDNStatusView:    NewGRPCStatusView(app, conn),
+		footerView:         NewFooterView(app, conn),
 	}
 	mv.commandsListView.GetCommands(app, mv.resultAndInputView, conn)
 
 	mv.mainGrid.
-		SetRows(8, 0, 3).
+		SetRows(8, 0, 5).
 		SetColumns(40, 0).
 		AddItem(mv.headerView.GetContent(), 0, 0, 1, 2, 0, 0, false).
-		AddItem(mv.goSDNStatusView.GetContent(), 2, 0, 1, 2, 0, 0, false)
+		AddItem(mv.footerView.GetContent(), 2, 0, 1, 2, 0, 0, false)
 
 	mv.mainGrid.AddItem(mv.commandsListView.GetContent(), 1, 0, 1, 1, 0, 0, true).
 		AddItem(mv.resultAndInputView.GetContent(), 1, 1, 1, 1, 0, 0, false)
@@ -43,9 +43,3 @@ func NewMainView(app *app.App, conn *grpc.ClientConn) *MainView {
 func (mv *MainView) GetContent() tview.Primitive {
 	return mv.pages
 }
-
-func newPrimitive(text string) tview.Primitive {
-	return tview.NewTextView().
-		SetTextAlign(tview.AlignCenter).
-		SetText(text)
-}