diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,7 @@
+# 0.4.3.2 (2021-02-03)
+- intercalate newlines between cycles
+- only list subcycles with over 2 packages
+
 # 0.4.3.1 (2020-09-24)
 - 'deps' and 'rdeps': --exclude option to ignore a "broken" neighboring package
 
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-[![Build Status](https://travis-ci.org/juhp/rpmbuild-order.png)](https://travis-ci.org/juhp/rpmbuild-order)
+[![GitHub CI](https://github.com/juhp/rpmbuild-order/workflows/build/badge.svg)](https://github.com/juhp/rpmbuild-order/actions)
 [![Hackage](http://img.shields.io/hackage/v/rpmbuild-order.png)](http://hackage.haskell.org/package/rpmbuild-order)
 [![license](https://img.shields.io/badge/license-BSD-brightgreen.svg)](https://opensource.org/licenses/BSD-3-Clause)
 
diff --git a/TODO b/TODO
--- a/TODO
+++ b/TODO
@@ -7,3 +7,5 @@
 - handle duplicate packages?
 
 - (r)deps: optimize using actual deps
+
+- option to somehow display subpackage deps for cycles
diff --git a/rpmbuild-order.cabal b/rpmbuild-order.cabal
--- a/rpmbuild-order.cabal
+++ b/rpmbuild-order.cabal
@@ -1,12 +1,12 @@
 Name:             rpmbuild-order
-Version:          0.4.3.1
+Version:          0.4.3.2
 License:          BSD3
 License-File:     LICENSE
 Author:           Henning Thielemann <haskell@henning-thielemann.de>,
                   Jens Petersen <petersen@redhat.com>
 Maintainer:       Jens Petersen <petersen@redhat.com>
 Copyright:        2010-2018  Henning Thielemann,
-                  2018-2020 Jens Petersen <petersen@redhat.com>
+                  2018-2021 Jens Petersen <petersen@redhat.com>
 Category:         Distribution
 Homepage:         https://github.com/juhp/rpmbuild-order
 Bug-reports:      https://github.com/juhp/rpmbuild-order/issues
@@ -42,7 +42,6 @@
 
 Executable rpmbuild-order
   Build-Depends: base < 5,
-                 bytestring,
                  directory,
                  extra,
                  fgl,
diff --git a/src/Distribution/RPM/Build/Graph.hs b/src/Distribution/RPM/Build/Graph.hs
--- a/src/Distribution/RPM/Build/Graph.hs
+++ b/src/Distribution/RPM/Build/Graph.hs
@@ -38,7 +38,7 @@
 #endif
 import Control.Monad (guard, when, unless)
 import Data.Maybe (catMaybes, fromMaybe, mapMaybe)
-import Data.List.Extra (dropSuffix, find, nubOrdOn, sort, sortOn)
+import Data.List.Extra (dropSuffix, find, intercalate, nubOrdOn, sort, sortOn)
 import System.Directory (doesDirectoryExist, doesFileExist,
 #if MIN_VERSION_directory(1,2,5)
                          listDirectory
@@ -249,7 +249,7 @@
       unless (null cycles) $
         error $ unlines $
         "Cycles in dependencies:" :
-        concatMap ((++ [""]) . renderCycles . subcycles) cycles
+        intercalate [""] (map (renderCycles . subcycles) cycles)
       where
         cycles :: [[G.Node]]
         cycles =
@@ -260,7 +260,7 @@
         subcycles [] = error "cyclic graph with no nodes!"
         subcycles cycle'@(n:ns) =
           let sg = G.emap (const (1 :: Int)) $ G.subgraph cycle' graph
-              shorter = nubOrdOn sort $ sortOn length $ filter ((< length ns) . length) $ catMaybes $ mapAdjacent (\ i j-> sp j i sg) (cycle' ++ [n])
+              shorter = nubOrdOn sort $ sortOn length $ filter ((\l -> l < length ns && l > 2) . length) $ catMaybes $ mapAdjacent (\ i j-> sp j i sg) (cycle' ++ [n])
           in (nodeLabels graph cycle', map (nodeLabels sg) shorter)
 
         mapAdjacent :: (a -> a -> b) -> [a] -> [b]
diff --git a/src/Main.hs b/src/Main.hs
--- a/src/Main.hs
+++ b/src/Main.hs
@@ -74,9 +74,9 @@
 depsPackages rev rpmopts verbose excludedPkgs ignoredBRs lenient parallel mdir pkgs = do
   unlessM (and <$> mapM doesDirectoryExist pkgs) $
     error "Please use package directory paths"
-  filter (`notElem` excludedPkgs) <$> listDirectory "." >>=
+  listDirectory "." >>=
     -- filter out dotfiles
-    createGraph''' ignoredBRs rpmopts verbose lenient (not rev) mdir . filter ((/= '.') . head) >>=
+    createGraph''' ignoredBRs rpmopts verbose lenient (not rev) mdir . filter ((/= '.') . head) . filter (`notElem` excludedPkgs) >>=
     createGraph'' rpmopts verbose lenient True mdir . dependencyNodes pkgs >>=
     sortGraph (if parallel then Parallel else Combine)
 
