diff --git a/clanki.cabal b/clanki.cabal
--- a/clanki.cabal
+++ b/clanki.cabal
@@ -2,7 +2,7 @@
 --  see http://haskell.org/cabal/users-guide/
 
 name:                clanki
-version:             1.0.6
+version:             1.0.7
 synopsis:            Command-line spaced-repetition software
 description:         Command-line spaced-repetition learning software. CL (command line) + Anki (popular spaced-repetition software) = Clanki. Usage is fairly simple, just follow the instructions after running the program. Add a deck, add cards to the deck, then quiz whenever possible. The program will determine what cards need to be reviewed, using the Super Memo 2 algorithm.
 license:             MIT
diff --git a/src/Add.hs b/src/Add.hs
--- a/src/Add.hs
+++ b/src/Add.hs
@@ -7,7 +7,8 @@
 data AddAction = NewDeck | ToDeck deriving (Show, Eq)
 
 instance Display AddAction where
-    display = show
+    display NewDeck = "New deck"
+    display ToDeck  = "Add to deck"
 
 addLoop :: [Deck] -> IO [Deck]
 addLoop decks = do
@@ -68,7 +69,9 @@
 
 getAddAction :: [Deck] -> IO (Maybe AddAction)
 getAddAction [] = return $ Just NewDeck
-getAddAction _  = Input.getUserChoice allAddActions
+getAddAction _  = do
+    printf $ "What would you like to do?" ++ "\n"
+    Input.getUserChoice allAddActions
 
 allAddActions :: [AddAction]
 allAddActions = [NewDeck, ToDeck]
diff --git a/src/Quiz.hs b/src/Quiz.hs
--- a/src/Quiz.hs
+++ b/src/Quiz.hs
@@ -7,6 +7,7 @@
 import Safe(readMay)
 import Data.Time.Clock.POSIX
 import qualified Input
+import Control.Monad(filterM)
 data QuizAction = AllCards | FromDeck deriving (Show, Eq)
 
 allQuizActions :: [QuizAction]
@@ -45,6 +46,10 @@
 
 maybeQuiz :: Card -> IO Card
 maybeQuiz card = shouldQuizCard card >>= (\shouldQuiz -> if shouldQuiz then quizCard card else return card)
+
+cardsToQuiz :: [Deck] -> IO [Card]
+cardsToQuiz decks = filterM shouldQuizCard cards
+    where cards = allCards decks
     
 
 {-quizCards :: [Card] -> [Deck] -> IO [Deck]-}
@@ -76,13 +81,19 @@
         Just confidence -> if confidence `elem` [1 .. 5] then return confidence else getAnswerConfidence
         Nothing         -> getAnswerConfidence
 
-
-
-
 quizFromDeck :: Deck -> [Deck] -> IO [Deck]
 quizFromDeck deck decks = quizDeck deck >>= (\newDeck -> return $ replaceDeckNamed (dName deck) newDeck decks)
 
 getQuizAction :: [Deck] -> IO (Maybe QuizAction)
-getQuizAction decks = Input.getUserChoice allQuizActions
-    
-
+getQuizAction [] = do
+            printf $ "No decks, returning to menu" ++ "\n"
+            return Nothing
+getQuizAction decks = do
+    cardsToBeQuizzed <- cardsToQuiz decks
+    case cardsToBeQuizzed of
+        [] -> do
+            printf $ "No cards need to be quizzed at this time" ++ "\n" 
+            return Nothing
+        _  -> do
+            printf $ "What would you like to be quizzed on?" ++ "\n"
+            Input.getUserChoice allQuizActions
diff --git a/src/Remove.hs b/src/Remove.hs
--- a/src/Remove.hs
+++ b/src/Remove.hs
@@ -51,7 +51,9 @@
 getRemoveAction [] = return Nothing
 getRemoveAction decks
     | all (null . dCards) decks = return $ Just RemoveDeck
-    | otherwise  = Input.getUserChoice allRemoveActions
+    | otherwise  = do
+        printf $ "What would you like to do?" ++ "\n"
+        Input.getUserChoice allRemoveActions
 
 allRemoveActions :: [RemoveAction]
 allRemoveActions = [RemoveDeck, RemoveFromDeck]
