diff --git a/internal/dynamo-browse/ui/teamodels/dynamoitemview/model.go b/internal/dynamo-browse/ui/teamodels/dynamoitemview/model.go
index dd4a5c6..bcc65cf 100644
--- a/internal/dynamo-browse/ui/teamodels/dynamoitemview/model.go
+++ b/internal/dynamo-browse/ui/teamodels/dynamoitemview/model.go
@@ -22,7 +22,7 @@ var (
 				Background(lipgloss.Color("#4479ff"))
 
 	fieldTypeStyle = lipgloss.NewStyle().
-			Foreground(lipgloss.Color("#31e131"))
+			Foreground(lipgloss.AdaptiveColor{Light: "#2B800C", Dark: "#73C653"})
 	metaInfoStyle = lipgloss.NewStyle().
 			Foreground(lipgloss.Color("#888888"))
 )
diff --git a/internal/dynamo-browse/ui/teamodels/dynamotableview/model.go b/internal/dynamo-browse/ui/teamodels/dynamotableview/model.go
index 6e51a22..c3b3777 100644
--- a/internal/dynamo-browse/ui/teamodels/dynamotableview/model.go
+++ b/internal/dynamo-browse/ui/teamodels/dynamotableview/model.go
@@ -2,6 +2,7 @@ package dynamotableview
 
 import (
 	table "github.com/calyptia/go-bubble-table"
+	"github.com/charmbracelet/bubbles/key"
 	tea "github.com/charmbracelet/bubbletea"
 	"github.com/charmbracelet/lipgloss"
 	"github.com/lmika/awstools/internal/dynamo-browse/controllers"
@@ -18,10 +19,22 @@ var (
 		Background(lipgloss.Color("#4479ff"))
 )
 
+type KeyBinding struct {
+	MoveUp   key.Binding
+	MoveDown key.Binding
+	PageUp   key.Binding
+	PageDown key.Binding
+	Home     key.Binding
+	End      key.Binding
+	ColLeft  key.Binding
+	ColRight key.Binding
+}
+
 type Model struct {
 	frameTitle frame.FrameTitle
 	table      table.Model
 	w, h       int
+	keyBinding KeyBinding
 
 	// model state
 	colOffset int
@@ -39,6 +52,16 @@ func New() *Model {
 	return &Model{
 		frameTitle: frameTitle,
 		table:      tbl,
+		keyBinding: KeyBinding{
+			MoveUp:   key.NewBinding(key.WithKeys("i", "up")),
+			MoveDown: key.NewBinding(key.WithKeys("k", "down")),
+			PageUp:   key.NewBinding(key.WithKeys("I", "pgup")),
+			PageDown: key.NewBinding(key.WithKeys("K", "pgdown")),
+			Home:     key.NewBinding(key.WithKeys("I", "home")),
+			End:      key.NewBinding(key.WithKeys("K", "end")),
+			ColLeft:  key.NewBinding(key.WithKeys("j", "left")),
+			ColRight: key.NewBinding(key.WithKeys("l", "right")),
+		},
 	}
 }
 
@@ -53,26 +76,32 @@ func (m *Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
 		m.updateTable()
 		return m, m.postSelectedItemChanged
 	case tea.KeyMsg:
-		switch msg.String() {
+		switch {
 		// Table nav
-		case "i", "up":
+		case key.Matches(msg, m.keyBinding.MoveUp):
 			m.table.GoUp()
 			return m, m.postSelectedItemChanged
-		case "k", "down":
+		case key.Matches(msg, m.keyBinding.MoveDown):
 			m.table.GoDown()
 			return m, m.postSelectedItemChanged
-		case "j":
-			m.setLeftmostDisplayedColumn(m.colOffset - 1)
-			return m, nil
-		case "l":
-			m.setLeftmostDisplayedColumn(m.colOffset + 1)
-			return m, nil
-		case "I", "pgup":
+		case key.Matches(msg, m.keyBinding.PageUp):
 			m.table.GoPageUp()
 			return m, m.postSelectedItemChanged
-		case "K", "pgdn":
+		case key.Matches(msg, m.keyBinding.PageDown):
 			m.table.GoPageDown()
 			return m, m.postSelectedItemChanged
+		case key.Matches(msg, m.keyBinding.Home):
+			m.table.GoTop()
+			return m, m.postSelectedItemChanged
+		case key.Matches(msg, m.keyBinding.End):
+			m.table.GoBottom()
+			return m, m.postSelectedItemChanged
+		case key.Matches(msg, m.keyBinding.ColLeft):
+			m.setLeftmostDisplayedColumn(m.colOffset - 1)
+			return m, nil
+		case key.Matches(msg, m.keyBinding.ColRight):
+			m.setLeftmostDisplayedColumn(m.colOffset + 1)
+			return m, nil
 		}
 	}