diff --git a/src/adormit/adormit.go b/src/adormit/adormit.go
index 5224658d68a96d15a184c99a07e53132283800ce..352adc0690d9d978cbfc7676ae8cee9e579842d5 100644
--- a/src/adormit/adormit.go
+++ b/src/adormit/adormit.go
@@ -17,49 +17,49 @@ type Alarm struct {
 	id     string
 }
 
+func (alarm Alarm) SetAlarm() {
+	var insert []map[string]dbus.Variant
+	a := make(map[string]dbus.Variant)
+	a["name"] = dbus.MakeVariant(alarm.name)
+	a["active"] = dbus.MakeVariant(alarm.active)
+	existing_alarms := GetGnomeAlarms()
+	insert = append(insert, a)
+	for _, v := range existing_alarms {
+		insert = append(insert, v)
+	}
+	// insert = append(insert, get_v().([]interface{})[0].(map[string]interface{}))
+	sig, _ := dbus.ParseSignature("aa{sv}")
+	existing_alarms_var := dbus.MakeVariantWithSignature(insert, sig)
+	fmt.Println(existing_alarms_var)
+}
+
 type Timer struct {
-	name     string
+	Name     string
 	start    time.Time
-	duration time.Duration
+	Duration time.Duration
 	end      time.Time
-	command  string
-	args     []string
+	Command  string
+	Args     []string
 }
 
 func (t Timer) Countdown() {
-	timer1 := time.NewTimer(t.duration)
+	timer1 := time.NewTimer(t.Duration)
 	<-timer1.C
 	fmt.Println("Timer completed")
 	t.end = time.Now()
-	cmd := exec.Command(t.command, t.args...)
+	cmd := exec.Command(t.Command, t.Args...)
 	cmd.Run()
 }
 
 func DemoTimer() {
 	args := []string{"-i", "clock", "Timer over!", "adormit"}
-	t := Timer{duration: time.Second * 1, command: "notify-send", args: args}
+	t := Timer{Duration: time.Second * 1, Command: "notify-send", Args: args}
 	t.Countdown()
 }
 
 func MakeAlarm() {
 	alarm := Alarm{name: "my-alarm", active: true}
-	SetAlarm(alarm)
-}
-
-func SetAlarm(alarm Alarm) {
-	var insert []map[string]dbus.Variant
-	a := make(map[string]dbus.Variant)
-	a["name"] = dbus.MakeVariant(alarm.name)
-	a["active"] = dbus.MakeVariant(alarm.active)
-	existing_alarms := GetGnomeAlarms()
-	insert = append(insert, a)
-	for _, v := range existing_alarms {
-		insert = append(insert, v)
-	}
-	// insert = append(insert, get_v().([]interface{})[0].(map[string]interface{}))
-	sig, _ := dbus.ParseSignature("aa{sv}")
-	existing_alarms_var := dbus.MakeVariantWithSignature(insert, sig)
-	fmt.Println(existing_alarms_var)
+	alarm.SetAlarm()
 }
 
 func debug(ty interface{}) {
@@ -71,19 +71,18 @@ func debug(ty interface{}) {
 	}
 }
 
-func get_v() interface{} {
-	settings := glib.SettingsNew("org.gnome.clocks")
-	alarms := settings.GetValue("alarms")
-	sig, _ := dbus.ParseSignature("aa{sv}")
-	v, _ := dbus.ParseVariant(alarms.String(), sig)
-	return v.Value()
-}
+// func get_v() interface{} {
+// 	settings := glib.SettingsNew("org.gnome.clocks")
+// 	alarms := settings.GetValue("alarms")
+// 	sig, _ := dbus.ParseSignature("aa{sv}")
+// 	v, _ := dbus.ParseVariant(alarms.String(), sig)
+// 	return v.Value()
+// }
 
 func GetGnomeAlarms() []map[string]dbus.Variant {
 	//gsettings get org.gnome.clocks alarms
 	settings := glib.SettingsNew("org.gnome.clocks")
 	alarms := settings.GetValue("alarms")
-	// debug(settings)
 	sig, _ := dbus.ParseSignature("aa{sv}")
 	v, _ := dbus.ParseVariant(alarms.String(), sig)
 	val := v.Value()
diff --git a/src/cmd/root.go b/src/cmd/root.go
index 3c035d4109d2b5a952e0689b256ad328b7923737..76c62213ed2cefc4bc575162c17b6ebca7d9157a 100644
--- a/src/cmd/root.go
+++ b/src/cmd/root.go
@@ -12,7 +12,7 @@ var RootCmd = &cobra.Command{
 		// cmd.Help()
 		adormit.GetGnomeAlarms()
 		adormit.MakeAlarm()
-		adormit.DemoTimer()
+		// adormit.DemoTimer()
 	},
 }
 
diff --git a/src/cmd/timer.go b/src/cmd/timer.go
new file mode 100644
index 0000000000000000000000000000000000000000..a03e25827757f875618177729c49e0d149e99183
--- /dev/null
+++ b/src/cmd/timer.go
@@ -0,0 +1,25 @@
+package cmd
+
+import (
+	"adormit"
+	"github.com/spf13/cobra"
+	"time"
+)
+
+var Length int
+
+func init() {
+	timerCmd.PersistentFlags().IntVarP(&Length, "length", "l", 60, "length of time in seconds")
+	RootCmd.AddCommand(timerCmd)
+}
+
+var timerCmd = &cobra.Command{
+	Use:   "timer",
+	Short: "run a simple timer",
+	Long:  `runs a timer optionally with `,
+	Run: func(cmd *cobra.Command, args []string) {
+		alarmArgs := []string{"-i", "clock", "Timer over!", "adormit"}
+		t := adormit.Timer{Duration: time.Second * time.Duration(Length), Command: "notify-send", Args: alarmArgs}
+		t.Countdown()
+	},
+}