diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,10 +1,15 @@
 # Changelog
 
+## 0.7.1 (2019-09-25)
+- print datestamp beside filesize
+- show directory correctly with ~/
+- use a subdirectory for checksum files
+
 ## 0.7 (2019-09-12)
 - add --checksum to always do checksum when possible
 - add --run to run image in qemu-kvm if available
 - rework algorithms
-  - check local filesize earlier: don't even check mirror if always downloaded
+  - check local filesize earlier: don't even check mirror if already downloaded
   - for partial local file output percentage already downloaded
   - otherwise show filesize
 - show dir for symlink: so one knows location
diff --git a/Main.hs b/Main.hs
--- a/Main.hs
+++ b/Main.hs
@@ -14,6 +14,7 @@
 import Data.Maybe
 import Data.Semigroup ((<>))
 import qualified Data.Text as T
+import Data.Time.LocalTime (utcToLocalZonedTime)
 
 import Network.HTTP.Directory
 
@@ -22,16 +23,17 @@
 
 import Paths_dl_fedora (version)
 
-import SimpleCmd (cmd_, error', grep_, pipe_, pipeBool, pipeFile_)
+import SimpleCmd (cmd_, cmdN, error', grep_, pipe_, pipeBool, pipeFile_)
 import SimpleCmdArgs
 
-import System.Directory (createDirectoryIfMissing, doesDirectoryExist,
-                         doesFileExist, findExecutable, getHomeDirectory,
-                         getPermissions, listDirectory, removeFile,
-                         setCurrentDirectory, writable)
+import System.Directory (createDirectory, createDirectoryIfMissing,
+                         doesDirectoryExist, doesFileExist, findExecutable,
+                         getHomeDirectory, getPermissions, listDirectory,
+                         removeFile, setCurrentDirectory, withCurrentDirectory,
+                         writable)
 import System.Environment.XDG.UserDir (getUserDir)
-import System.FilePath (dropFileName, joinPath, makeRelative, takeExtension,
-                        takeFileName, (<.>))
+import System.FilePath (dropFileName, isRelative , joinPath, makeRelative,
+                        takeExtension, takeFileName, (<.>))
 import System.Posix.Files (createSymbolicLink, fileSize, getFileStatus,
                            readSymbolicLink)
 
@@ -119,16 +121,18 @@
   unless dryrun $ do
     let localfile = takeFileName fileurl
         symlink = filenamePrefix <> "-latest" <.> takeExtension fileurl
-        showdestdir = "~" </> makeRelative home dlDir
+        showdestdir =
+          let path = makeRelative home dlDir in
+            if isRelative path then "~" </> path else path
     updateSymlink localfile symlink showdestdir
-    when run $ bootImage localfile
+    when run $ bootImage localfile showdestdir
   where
     setDownloadDir dlDir home = do
       dirExists <- doesDirectoryExist dlDir
       unless (dryrun || dirExists) $
         when (home == dlDir) $
           error' "HOME directory does not exist!"
-      unless (dirExists || dryrun) $ createDirectoryIfMissing False dlDir
+      unless (dirExists || dryrun) $ createDirectoryIfMissing True dlDir
       dirExists' <- if dirExists then return True
                     else doesDirectoryExist dlDir
       when dirExists' $ setCurrentDirectory dlDir
@@ -153,6 +157,12 @@
                        else prefixPat
               masterUrl = masterDir </> file
           masterSize <- httpFileSize mgr masterUrl
+          mlocaltime <- do
+            mUtc <- httpLastModified mgr masterUrl
+            case mUtc of
+              Nothing -> return Nothing
+              Just u -> Just <$> utcToLocalZonedTime u
+          maybe (return ()) putStrLn $ showMSize masterSize <> showMDate mlocaltime
           (finalurl, already) <- do
             let localfile = takeFileName masterUrl
             exists <- doesFileExist localfile
@@ -166,13 +176,14 @@
                 unless canwrite $
                   error' $ localfile <> " does have write permission, aborting!"
                 findMirror masterUrl path file
-              else do
-              maybe (return ()) (\ s -> putStrLn $ "size " <> show s) masterSize
-              findMirror masterUrl path file
+              else findMirror masterUrl path file
           let finalDir = dropFileName finalurl
           putStrLn finalurl
           return (finalurl, prefix, (masterUrl,masterSize), (finalDir </>) . T.unpack <$> mchecksum, already)
         where
+          showMSize = fmap (\ s -> "size " <> show s <> " ")
+          showMDate = fmap (\ s -> "(" <> show s <> ")")
+
           findMirror masterUrl path file = do
             url <-
               if mirror == dlFpo then return masterUrl
@@ -269,10 +280,15 @@
     fileChecksum Nothing _ = return ()
     fileChecksum (Just url) needChecksum =
       when ((needChecksum && checksum /= NoCheckSum) || checksum == CheckSum) $ do
-        let checksumfile = takeFileName url
-        exists <- doesFileExist checksumfile
+        let checksumdir = ".dl-fedora-checksums"
+            checksumfile = checksumdir </> takeFileName url
+        exists <- do
+          dirExists <- doesDirectoryExist checksumdir
+          if dirExists then doesFileExist checksumfile
+            else createDirectory checksumdir >> return False
         putStrLn ""
         unless exists $
+          withCurrentDirectory checksumdir $
           cmd_ "curl" ["-C", "-", "-s", "-S", "-O", url]
         pgp <- grep_ "PGP" checksumfile
         when (gpg && pgp) $ do
@@ -344,14 +360,16 @@
         | head t == '/' = s </> tail t
 s </> t = s <> "/" <> t
 
-bootImage :: FilePath -> IO ()
-bootImage img = do
+bootImage :: FilePath -> String -> IO ()
+bootImage img showdir = do
   let fileopts =
         case takeExtension img of
           ".iso" -> ["-boot", "d", "-cdrom"]
           _ -> []
   mQemu <- findExecutable "qemu-kvm"
   case mQemu of
-    Just qemu ->
-      cmd_ qemu (["-m", "2048", "-usb", "-rtc", "base=localtime"] ++ fileopts ++ [img])
+    Just qemu -> do
+      let args = ["-m", "2048", "-rtc", "base=localtime"] ++ fileopts
+      cmdN qemu (args ++ [showdir </> img])
+      cmd_ qemu (args ++ [img])
     Nothing -> error' "Need qemu to run image"
diff --git a/dl-fedora.cabal b/dl-fedora.cabal
--- a/dl-fedora.cabal
+++ b/dl-fedora.cabal
@@ -1,6 +1,6 @@
 cabal-version:       1.18
 name:                dl-fedora
-version:             0.7
+version:             0.7.1
 synopsis:            Fedora image download tool
 description:         Tool to download Fedora iso and image files
 -- can change to GPL-3.0-or-later with Cabal-2.2
@@ -28,7 +28,7 @@
 
   build-depends:       base < 5,
                        bytestring,
-                       directory,
+                       directory >= 1.2.5.0,
                        filepath,
                        http-directory >= 0.1.5,
                        http-types,
@@ -37,6 +37,7 @@
                        simple-cmd >= 0.2.0,
                        simple-cmd-args >= 0.1.2,
                        text,
+                       time,
                        unix,
                        xdg-userdirs
   if impl(ghc<8.0)
