diff --git a/Data/Time/Calendar/BankHoliday.hs b/Data/Time/Calendar/BankHoliday.hs
--- a/Data/Time/Calendar/BankHoliday.hs
+++ b/Data/Time/Calendar/BankHoliday.hs
@@ -1,11 +1,12 @@
 ------------------------------------------------------------------------------
--- Module      : Data.Time.Calendar.BankHoliday.UnitedStates
+-- Module      : Data.Time.Calendar.BankHoliday
 -- Maintainer  : brady.ouren@gmail.com
 ------------------------------------------------------------------------------
 
 module Data.Time.Calendar.BankHoliday
   ( isWeekend
   , isWeekday
+  , yearFromDay
   ) where
 
 import Data.Time
@@ -18,3 +19,8 @@
 isWeekday :: Day -> Bool
 isWeekday = not . isWeekend
 
+yearFromDay :: Day -> Integer
+yearFromDay = fst' . toGregorian
+  where
+    fst' :: (a,b,c) -> a
+    fst' (x,_,_) = x
diff --git a/Data/Time/Calendar/BankHoliday/UnitedStates.hs b/Data/Time/Calendar/BankHoliday/UnitedStates.hs
--- a/Data/Time/Calendar/BankHoliday/UnitedStates.hs
+++ b/Data/Time/Calendar/BankHoliday/UnitedStates.hs
@@ -7,12 +7,14 @@
   (
     isBankHoliday
   , bankHolidays
+  , holidaysBetween
+  , holidaysBetweenYears
   ) where
 
 import Data.Maybe
 import Data.Time (Day, fromGregorian, toGregorian)
 import Data.Time.Calendar (addDays, toModifiedJulianDay)
-import Data.Time.Calendar.BankHoliday (isWeekday, isWeekend)
+import Data.Time.Calendar.BankHoliday (isWeekday, isWeekend, yearFromDay)
 
 {- | bank holidays for a given year -}
 bankHolidays :: Integer -> [Day]
@@ -37,14 +39,25 @@
 
 {- | whether the given day is a bank holiday -}
 isBankHoliday :: Day -> Bool
-isBankHoliday d = d `elem` (bankHolidays year)
-  where
-    (year,_,_) = toGregorian d
+isBankHoliday d = d `elem` bankHolidays (yearFromDay d)
 
 -- | day federal bank holidays were announced in the United States
 -- | March 9th 1933
+filterHistoric :: [Day] -> [Day]
 filterHistoric = filter (\d -> d > marchNinth1933)
   where marchNinth1933 = fromGregorian 1933 3 9
+
+-- | find holidays falling between 2 years of time
+holidaysBetweenYears :: Integer -> Integer -> [Day]
+holidaysBetweenYears startYear endYear =
+  foldl (++) [] (map bankHolidays [startYear..endYear])
+
+-- | find holidays falling between 2 specific days
+holidaysBetween :: Day -> Day -> [Day]
+holidaysBetween start end =
+  filter (\a -> a >= start && a <= end) fullRange
+  where
+    fullRange = holidaysBetweenYears (yearFromDay start) (yearFromDay end)
 
 weekendHolidayFrom :: Day -> Maybe Day
 weekendHolidayFrom d = case weekIndex d of
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -5,6 +5,8 @@
 
 A haskell library for holidays
 
+[bank-holiday-usa on hackage](https://hackage.haskell.org/package/bank-holiday-usa)
+
 ----
 
 - New Year's Day - January 1
@@ -24,9 +26,6 @@
   Reserve Banks and Branches will be closed the following Monday.
 
 ``` sh
-
-# Initialize a sandbox and install the package's dependencies.
-stack install
 
 # Configure & build the package.
 stack build
diff --git a/bank-holiday-usa.cabal b/bank-holiday-usa.cabal
--- a/bank-holiday-usa.cabal
+++ b/bank-holiday-usa.cabal
@@ -1,5 +1,5 @@
 name: bank-holiday-usa
-version: 0.0.1
+version: 0.1.0
 cabal-version: >=1.10
 build-type: Simple
 license: MIT
diff --git a/test/Data/Time/Calendar/BankHoliday/UnitedStatesSpec.hs b/test/Data/Time/Calendar/BankHoliday/UnitedStatesSpec.hs
--- a/test/Data/Time/Calendar/BankHoliday/UnitedStatesSpec.hs
+++ b/test/Data/Time/Calendar/BankHoliday/UnitedStatesSpec.hs
@@ -2,11 +2,12 @@
 
 module Data.Time.Calendar.BankHoliday.UnitedStatesSpec (spec) where
 
+import Data.List (nub)
 import Data.Time
 import Test.Hspec
 import Test.QuickCheck
 
-import Data.Time.Calendar.BankHoliday (isWeekday)
+import Data.Time.Calendar.BankHoliday (isWeekday, yearFromDay)
 import Data.Time.Calendar.BankHoliday.UnitedStates
 
 spec :: Spec
@@ -27,5 +28,36 @@
   describe "isBankHoliday" $ do
     it "returns true for the days we expect" $ do
       let christmas = fromGregorian 2015 12 25
-      isBankHoliday christmas `shouldBe` True
+      let newYears = fromGregorian 2014 1 1
+      let fourth = fromGregorian 2014 7 4
+      all isBankHoliday [christmas, newYears, fourth]
+
+  describe "holidaysBetweenYears" $ do
+    it "does not include dates outside of range" $ do
+      let tooEarly = bankHolidays 1999
+      let tooLate = bankHolidays 2017
+      let justRight = holidaysBetweenYears 2000 2016
+      justRight `shouldNotContain` tooEarly
+      justRight `shouldNotContain` tooLate
+
+    it "keeps them in order" $ do
+      let oneYearRange = holidaysBetweenYears 2000 2001
+      let f = yearFromDay $ head $ oneYearRange
+      let l = yearFromDay $ head $ reverse $ oneYearRange
+      f `shouldBe` 2000
+      l `shouldBe` 2001
+
+    it "does not duplicate if given the same year" $ do
+      let sameYearRange = holidaysBetweenYears 2000 2000
+      nub sameYearRange `shouldBe` sameYearRange
+
+
+  describe "holidaysBetween" $ do
+    it "does not include dates outside of range" $ do
+      let (s, e) = (fromGregorian 2014 1 2, fromGregorian 2014 7 4)
+      let theRange = holidaysBetween s e
+      theRange `shouldNotContain` [fromGregorian 2014 1 1]
+      theRange `shouldNotContain` [fromGregorian 2014 7 5]
+      theRange `shouldContain` [e]
+      theRange `shouldContain` [fromGregorian 2014 1 20]
 
