diff --git a/internal/dynamo-browse/providers/dynamo/provider_test.go b/internal/dynamo-browse/providers/dynamo/provider_test.go
index 1540792..5d457b2 100644
--- a/internal/dynamo-browse/providers/dynamo/provider_test.go
+++ b/internal/dynamo-browse/providers/dynamo/provider_test.go
@@ -20,7 +20,7 @@ func TestProvider_ScanItems(t *testing.T) {
 	t.Run("should return scanned items from the table", func(t *testing.T) {
 		ctx := context.Background()
 
-		items, err := provider.ScanItems(ctx, tableName)
+		items, err := provider.ScanItems(ctx, tableName, 100)
 		assert.NoError(t, err)
 		assert.Len(t, items, 3)
 
@@ -32,7 +32,7 @@ func TestProvider_ScanItems(t *testing.T) {
 	t.Run("should return error if table name does not exist", func(t *testing.T) {
 		ctx := context.Background()
 
-		items, err := provider.ScanItems(ctx, "does-not-exist")
+		items, err := provider.ScanItems(ctx, "does-not-exist", 100)
 		assert.Error(t, err)
 		assert.Nil(t, items)
 	})
@@ -53,7 +53,7 @@ func TestProvider_DeleteItem(t *testing.T) {
 			"sk": &types.AttributeValueMemberS{Value: "222"},
 		})
 
-		items, err := provider.ScanItems(ctx, tableName)
+		items, err := provider.ScanItems(ctx, tableName, 100)
 		assert.NoError(t, err)
 		assert.Len(t, items, 2)
 
@@ -75,7 +75,7 @@ func TestProvider_DeleteItem(t *testing.T) {
 			"sk": &types.AttributeValueMemberS{Value: "999"},
 		})
 
-		items, err := provider.ScanItems(ctx, tableName)
+		items, err := provider.ScanItems(ctx, tableName, 100)
 		assert.NoError(t, err)
 		assert.Len(t, items, 3)
 
@@ -91,7 +91,7 @@ func TestProvider_DeleteItem(t *testing.T) {
 
 		ctx := context.Background()
 
-		items, err := provider.ScanItems(ctx, "does-not-exist")
+		items, err := provider.ScanItems(ctx, "does-not-exist", 100)
 		assert.Error(t, err)
 		assert.Nil(t, items)
 	})
diff --git a/internal/slog-view/ui/loglines/model.go b/internal/slog-view/ui/loglines/model.go
index 10fc6c1..f682919 100644
--- a/internal/slog-view/ui/loglines/model.go
+++ b/internal/slog-view/ui/loglines/model.go
@@ -1,12 +1,12 @@
 package loglines
 
 import (
-	table "github.com/lmika/go-bubble-table"
 	tea "github.com/charmbracelet/bubbletea"
 	"github.com/charmbracelet/lipgloss"
 	"github.com/lmika/awstools/internal/dynamo-browse/ui/teamodels/frame"
 	"github.com/lmika/awstools/internal/dynamo-browse/ui/teamodels/layout"
 	"github.com/lmika/awstools/internal/slog-view/models"
+	table "github.com/lmika/go-bubble-table"
 	"path/filepath"
 )
 
@@ -28,7 +28,7 @@ type Model struct {
 
 func New() *Model {
 	frameTitle := frame.NewFrameTitle("File: ", true, activeHeaderStyle)
-	table := table.New([]string{"level", "error", "message"}, 0, 0)
+	table := table.New(table.SimpleColumns{"level", "error", "message"}, 0, 0)
 
 	return &Model{
 		frameTitle: frameTitle,
@@ -40,7 +40,7 @@ func (m *Model) SetLogFile(newLogFile *models.LogFile) {
 	m.logFile = newLogFile
 	m.frameTitle.SetTitle("File: " + filepath.Base(newLogFile.Filename))
 
-	cols := []string{"level", "error", "message"}
+	cols := table.SimpleColumns{"level", "error", "message"}
 
 	newTbl := table.New(cols, m.w, m.h-m.frameTitle.HeaderHeight())
 	newRows := make([]table.Row, len(newLogFile.Lines))
diff --git a/internal/sqs-browse/ui/model.go b/internal/sqs-browse/ui/model.go
index f60c69b..4e1657a 100644
--- a/internal/sqs-browse/ui/model.go
+++ b/internal/sqs-browse/ui/model.go
@@ -7,7 +7,6 @@ import (
 	"log"
 	"strings"
 
-	table "github.com/lmika/go-bubble-table"
 	"github.com/charmbracelet/bubbles/textinput"
 	"github.com/charmbracelet/bubbles/viewport"
 	tea "github.com/charmbracelet/bubbletea"
@@ -16,6 +15,7 @@ import (
 	"github.com/lmika/awstools/internal/common/ui/events"
 	"github.com/lmika/awstools/internal/sqs-browse/controllers"
 	"github.com/lmika/awstools/internal/sqs-browse/models"
+	table "github.com/lmika/go-bubble-table"
 )
 
 var (
@@ -45,7 +45,7 @@ type uiModel struct {
 }
 
 func NewModel(dispatcher *dispatcher.Dispatcher, msgSendingHandlers *controllers.MessageSendingController) tea.Model {
-	tbl := table.New([]string{"seq", "message"}, 100, 20)
+	tbl := table.New(table.SimpleColumns{"seq", "message"}, 100, 20)
 	rows := make([]table.Row, 0)
 	tbl.SetRows(rows)
 
diff --git a/internal/ssm-browse/ui/ssmlist/ssmlist.go b/internal/ssm-browse/ui/ssmlist/ssmlist.go
index b481148..f909f27 100644
--- a/internal/ssm-browse/ui/ssmlist/ssmlist.go
+++ b/internal/ssm-browse/ui/ssmlist/ssmlist.go
@@ -1,12 +1,12 @@
 package ssmlist
 
 import (
-	table "github.com/lmika/go-bubble-table"
 	tea "github.com/charmbracelet/bubbletea"
 	"github.com/charmbracelet/lipgloss"
 	"github.com/lmika/awstools/internal/dynamo-browse/ui/teamodels/frame"
 	"github.com/lmika/awstools/internal/dynamo-browse/ui/teamodels/layout"
 	"github.com/lmika/awstools/internal/ssm-browse/models"
+	table "github.com/lmika/go-bubble-table"
 )
 
 var (
@@ -27,7 +27,7 @@ type Model struct {
 
 func New() *Model {
 	frameTitle := frame.NewFrameTitle("SSM: /", true, activeHeaderStyle)
-	table := table.New([]string{"name", "type", "value"}, 0, 0)
+	table := table.New(table.SimpleColumns{"name", "type", "value"}, 0, 0)
 
 	return &Model{
 		frameTitle: frameTitle,
@@ -41,7 +41,7 @@ func (m *Model) SetPrefix(newPrefix string) {
 
 func (m *Model) SetParameters(parameters *models.SSMParameters) {
 	m.parameters = parameters
-	cols := []string{"name", "type", "value"}
+	cols := table.SimpleColumns{"name", "type", "value"}
 
 	newTbl := table.New(cols, m.w, m.h-m.frameTitle.HeaderHeight())
 	newRows := make([]table.Row, len(parameters.Items))