diff --git a/clit.cabal b/clit.cabal
--- a/clit.cabal
+++ b/clit.cabal
@@ -1,5 +1,5 @@
 name: clit
-version: 0.4.0.3
+version: 0.4.0.4
 cabal-version: >=1.10
 build-type: Simple
 license: BSD3
@@ -33,14 +33,13 @@
         Web.Tweet.Exec
     build-depends:
         base >=4.7 && <5,
-        aeson >=1.0.2.1 && <1.1,
         http-client-tls >=0.3.4 && <0.4,
         http-client >=0.5.6.1 && <0.6,
         http-types >=0.9.1 && <0.10,
         authenticate-oauth ==1.6.*,
         bytestring >=0.10.8.1 && <0.11,
         split >=0.2.3.1 && <0.3,
-        optparse-applicative >=0.13.1.0 && <0.14,
+        optparse-applicative >=0.13.2.0 && <0.14,
         lens >=4.15.1 && <4.16,
         data-default >=0.7.1.1 && <0.8,
         text >=1.2.2.1 && <1.3,
@@ -64,7 +63,7 @@
     main-is: Main.hs
     build-depends:
         base >=4.9.1.0 && <4.10,
-        clit >=0.4.0.3 && <0.5
+        clit >=0.4.0.4 && <0.5
     default-language: Haskell2010
     hs-source-dirs: app
 
diff --git a/src/Web/Tweet/Types.hs b/src/Web/Tweet/Types.hs
--- a/src/Web/Tweet/Types.hs
+++ b/src/Web/Tweet/Types.hs
@@ -5,7 +5,6 @@
 -- | Exports the `Tweet` type, a datatype for building tweets easily
 module Web.Tweet.Types where
 
-import Data.Aeson
 import GHC.Generics
 import Control.Lens
 import Data.Default
@@ -26,5 +25,3 @@
 type Timeline = [(String, String, String, String)]
 
 makeLenses ''Tweet
-
-instance ToJSON Tweet where
diff --git a/src/Web/Tweet/Utils.hs b/src/Web/Tweet/Utils.hs
--- a/src/Web/Tweet/Utils.hs
+++ b/src/Web/Tweet/Utils.hs
@@ -6,12 +6,15 @@
 import Text.Megaparsec.Lexer as L
 import Text.Megaparsec
 import Data.Char
+import Data.List
 import Data.Monoid
 import Data.Maybe
 import Web.Tweet.Types
 import Control.Monad
 import Text.PrettyPrint.ANSI.Leijen hiding ((<$>), char, (<>), string)
 import Control.Lens.Tuple
+import Control.Lens hiding (noneOf)
+import Data.Function
 
 -- `FIXME` 
 parseDMs = zip <$> (extractEvery 2 <$> filterStr "screen_name") <*> (filterStr "text")
@@ -34,6 +37,15 @@
 parseTweet :: Parser Timeline
 parseTweet = many (try getData <|> (const ("","","","") <$> eof))
 
+hits = sortFaves . filterRTs
+
+filterRTs :: Timeline -> Timeline
+filterRTs = filter ((/="RT") . take 2 . (view _2))
+
+sortFaves :: Timeline -> Timeline
+sortFaves = sortBy compareFavorites
+    where compareFavorites = on compare ((read :: String -> Int) . (view _3))
+
 -- | Parse a single tweet's: name, text, fave count, retweet count
 getData :: Parser (String, String, String, String)
 getData = do
@@ -73,6 +85,7 @@
     string "\\n"
     pure '\n'
 
+-- TODO
 --emoji :: Parser Char
 --emoji = do
 --    string "\\u"
@@ -85,6 +98,7 @@
     num <- fromHex . filterEmoji <$> count 4 anyChar
     pure . toEnum . fromIntegral $ num
 
+-- | ignore emoji 
 filterEmoji str = if head str == 'd' then "FFFD" else str
 
 -- | Parse escaped characters
diff --git a/stack.yaml b/stack.yaml
--- a/stack.yaml
+++ b/stack.yaml
@@ -15,7 +15,7 @@
 # resolver:
 #  name: custom-snapshot
 #  location: "./custom-snapshot.yaml"
-resolver: lts-8.4
+resolver: lts-8.5
 
 # User packages to be built.
 # Various formats can be used as shown in the example below.
