diff --git a/lib/rfd.rb b/lib/rfd.rb
index <HASH>..<HASH> 100644
--- a/lib/rfd.rb
+++ b/lib/rfd.rb
@@ -111,11 +111,12 @@ module Rfd
     include Rfd::Commands
 
     def initialize(base: nil, dir: nil)
-      @base, @dir = base, dir
+      @base = base
       @win = Curses.stdscr.subwin Curses.stdscr.maxy - 9, Curses.stdscr.maxx - 2, 8, 1
       @row = 0
       super
 
+      cd dir
       ls
       @win.refresh
     end
@@ -137,6 +138,10 @@ module Rfd
       ls
     end
 
+    def cd(dir)
+      @dir = File.expand_path(dir.is_a?(Rfd::Item) ? dir.path : dir)
+    end
+
     def ls
       @win.clear
       @items = Dir.foreach(@dir).map {|fn| Item.new dir: @dir, name: fn}
Split out cd command from the initializer