diff --git a/main.go b/main.go
index e72f46f..29d8c6d 100644
--- a/main.go
+++ b/main.go
@@ -2,13 +2,21 @@ package main
 
 import (
 	"log"
+	"os"
 
 	gomus "git.cesium.pw/niku/gomus/pkg"
 	tea "github.com/charmbracelet/bubbletea"
 )
 
 func main() {
-	p := tea.NewProgram(gomus.NewModel())
+	if len(os.Args) < 2 {
+		log.Fatal("Expected a path to some music")
+	}
+
+	p := tea.NewProgram(gomus.NewModel(gomus.ModelArgs{
+		MusicPath: os.Args[1],
+	}))
+
 	if err := p.Start(); err != nil {
 		log.Fatalf("Failed to start: %v", err)
 	}
diff --git a/pkg/model.go b/pkg/model.go
index 0286adf..6a1309d 100644
--- a/pkg/model.go
+++ b/pkg/model.go
@@ -12,6 +12,10 @@ var (
 	termHeight = 0
 )
 
+type ModelArgs struct {
+	MusicPath string
+}
+
 type Model struct {
 	cursor           int
 	currentlyPlaying int
@@ -22,13 +26,8 @@ type Model struct {
 	trackPlayerView trackPlayerView
 }
 
-func NewModel() Model {
-	if len(os.Args) < 2 {
-		fmt.Println("Expected a path to some music")
-		os.Exit(0)
-	}
-
-	ti := NewDirTrackIndex(os.Args[1])
+func NewModel(args ModelArgs) Model {
+	ti := NewDirTrackIndex(args.MusicPath)
 	tpv := newTrackPlayerView(ti.tracks)
 
 	return Model{