diff --git a/ChangeLog.md b/ChangeLog.md
new file mode 100644
--- /dev/null
+++ b/ChangeLog.md
@@ -0,0 +1,5 @@
+# Revision history for acme-cuteboy
+
+## 0.1.0.0  -- YYYY-mm-dd
+
+* First version. Released on an unsuspecting world.
diff --git a/Setup.hs b/Setup.hs
new file mode 100644
--- /dev/null
+++ b/Setup.hs
@@ -0,0 +1,2 @@
+import Distribution.Simple
+main = defaultMain
diff --git a/acme-cuteboy.cabal b/acme-cuteboy.cabal
new file mode 100644
--- /dev/null
+++ b/acme-cuteboy.cabal
@@ -0,0 +1,28 @@
+name:                acme-cuteboy
+version:             0.1.0.0
+synopsis:            Maybe gives you a cute boy
+description:         A package which exists solely to try and give
+                     the user a cute boy. Executable and library are both
+                     available.
+homepage:            https://github.com/chessai/acme-cuteboy
+license:             PublicDomain
+author:              chessai
+maintainer:          chessai1996@gmail.com
+category:            Acme
+build-type:          Simple
+extra-source-files:  ChangeLog.md
+cabal-version:       >=1.10
+
+library
+  exposed-modules:     Acme.CuteBoy
+  build-depends:       base >= 3 && <6
+  hs-source-dirs:      src
+  default-language:    Haskell2010
+
+executable CuteBoy
+  build-depends:       base >=3 && <6
+                     , acme-cuteboy 
+  hs-source-dirs:      src 
+  main-is:             Main.hs
+  other-modules:       Acme.CuteBoy 
+  default-language:    Haskell2010
diff --git a/src/Acme/CuteBoy.hs b/src/Acme/CuteBoy.hs
new file mode 100644
--- /dev/null
+++ b/src/Acme/CuteBoy.hs
@@ -0,0 +1,18 @@
+module Acme.CuteBoy where
+
+-- Cute boys capable of doing cute stuff
+data CuteBoy = Ed | Edd | Eddy | Rolf deriving Show
+
+-- | Did you expect a cute boy? Too bad!
+cuteBoy :: Maybe CuteBoy
+cuteBoy = Just Rolf
+
+printCuteBoy :: IO ()
+printCuteBoy = case cuteBoy of
+  Just Rolf -> putStrLn $ concat [ "You expected some cute boy?\n"
+                                 , "Too bad!\n"
+                                 , "It is I, Rolf!\n"
+                                 , "Your garden is overgrown and\n"
+                                 , "your cucumbers are soft!"
+                                 ]
+  _ -> pure ()
diff --git a/src/Main.hs b/src/Main.hs
new file mode 100644
--- /dev/null
+++ b/src/Main.hs
@@ -0,0 +1,20 @@
+module Main where
+
+import Acme.CuteBoy
+
+import System.Environment (getArgs)
+
+main :: IO ()
+main = do
+  args <- getArgs
+  if "-h" `elem` args || "--help" `elem` args
+    then putStrLn help
+    else printCuteBoy
+  where
+    help = concat [ "CuteBoy -- attempts to get a cute boy.\n"
+                  , "\n"
+                  , "Flags:\n"
+                  , "-h,  --help    Prints this help menu\n"
+                  , "\n"
+                  , "Anything else  attempts to get a cute boy."
+                  ]
