diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,11 @@
 # Revision history for base64-lens
 
-## 0.1.0.0 -- YYYY-mm-dd
+## 0.2
+
+* Bump `base64` dependency to settle on 0.4 with the "finalized" api.
+* Remove `_Base64Unpadded` prism and `Base64Unpadded` patterns from `ByteString` and `Text`
+* Kill all CPP
+
+## 0.1.0.0
 
 * First version. Released on an unsuspecting world.
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -12,25 +12,23 @@
 ```haskell
 pattern Base64 :: ByteString -> ByteString
 pattern Base64Url :: ByteString -> ByteString
-pattern Base64Unpadded :: ByteString -> ByteString
 pattern Base64UrlUnpadded :: ByteString -> ByteString
 
 -- and
 
 pattern Base64 :: Text -> Text
 pattern Base64Url :: Text -> Text
-pattern Base64Unpadded :: Text -> Text
 pattern Base64UrlUnpadded :: Text -> Text
 
 -- additionally if using >=base64-0.3
 
-Base64Lenient :: ByteString -> ByteString
-Base64UrlLenient :: ByteString -> ByteString
+pattern Base64Lenient :: ByteString -> ByteString
+pattern Base64UrlLenient :: ByteString -> ByteString
 
 -- and
 
-Base64Lenient :: Text -> Text
-Base64UrlLenient :: Text -> Text
+pattern Base64Lenient :: Text -> Text
+pattern Base64UrlLenient :: Text -> Text
 ```
 
 These provide a convenient high level interface for passing Base64 encoded values.
@@ -44,14 +42,12 @@
 ```haskell
 _Base64 :: Prism' ByteString ByteString
 _Base64Url :: Prism' ByteString ByteString
-_Base64Unpadded :: Prism' ByteString ByteString
 _Base64UrlUnpadded :: Prism' ByteString ByteString
 
 -- and
 
 _Base64 :: Prism' Text Text
 _Base64Url :: Prism' Text Text
-_Base64Unpadded :: Prism' Text Text
 _Base64UrlUnpadded :: Prism' Text Text
 
 -- additionally if using >=base64-0.3
diff --git a/base64-lens.cabal b/base64-lens.cabal
--- a/base64-lens.cabal
+++ b/base64-lens.cabal
@@ -1,7 +1,7 @@
 cabal-version:       1.24
 
 name:                base64-lens
-version:             0.1.0.3
+version:             0.2.0
 synopsis:            Optics for the Base64 library
 description:
   Prisms and pattern synonyms for the Base64 library
@@ -37,7 +37,7 @@
                      , Data.Text.Encoding.Base64.Lens
 
   build-depends:       base       >=4.10 && <5
-                     , base64     >=0.2  && <0.4
+                     , base64     >=0.4  && <0.5
                      , bytestring >=0.10 && <0.11
                      , lens       >=4.0  && <4.19
                      , text       >=1.2  && <1.3
diff --git a/src/Data/ByteString/Base64/Lens.hs b/src/Data/ByteString/Base64/Lens.hs
--- a/src/Data/ByteString/Base64/Lens.hs
+++ b/src/Data/ByteString/Base64/Lens.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE CPP #-}
 {-# LANGUAGE PatternSynonyms #-}
 {-# LANGUAGE ViewPatterns #-}
 -- |
@@ -17,21 +16,15 @@
 ( -- * Prisms
   _Base64
 , _Base64Url
-, _Base64Unpadded
 , _Base64UrlUnpadded
-#if MIN_VERSION_base64(0,3,0)
 , _Base64Lenient
 , _Base64UrlLenient
-#endif
   -- * Patterns
 , pattern Base64
 , pattern Base64Url
-, pattern Base64Unpadded
 , pattern Base64UrlUnpadded
-#if MIN_VERSION_base64(0,3,0)
 , pattern Base64Lenient
 , pattern Base64UrlLenient
-#endif
 ) where
 
 
@@ -82,25 +75,6 @@
     Right a -> Just a
 {-# INLINE _Base64Url #-}
 
--- | A 'Prism'' into the unpadded Base64 encoding of a
--- 'ByteString' value
---
--- Please note that unpadded variants should only be used
--- when assumptions about the data can be made. In particular, if the length of
--- the input is divisible by 3, then this is a safe function to call.
---
--- >>> _Base64Unpadded # "Sun"
--- "U3Vu"
---
--- >>> "U3Vu" ^? _Base64Unpadded
--- Just "Sun"
---
-_Base64Unpadded :: Prism' ByteString ByteString
-_Base64Unpadded = prism' B64.encodeBase64Unpadded' $ \s -> case B64.decodeBase64Unpadded s of
-    Left _ -> Nothing
-    Right a -> Just a
-{-# INLINE _Base64Unpadded #-}
-
 -- | A 'Prism'' into the Base64url encoding of a 'ByteString' value
 --
 -- Please note that unpadded variants should only be used
@@ -119,7 +93,6 @@
     Right a -> Just a
 {-# INLINE _Base64UrlUnpadded #-}
 
-#if MIN_VERSION_base64(0,3,0)
 -- | An 'Iso'' into the Base64 encoding of a 'ByteString' value
 -- using lenient decoding.
 --
@@ -149,7 +122,6 @@
 --
 _Base64UrlLenient :: Iso' ByteString ByteString
 _Base64UrlLenient = iso B64U.encodeBase64' B64U.decodeBase64Lenient
-#endif
 
 -- -------------------------------------------------------------------------- --
 -- Patterns
@@ -166,19 +138,12 @@
 pattern Base64Url a <- (preview _Base64Url -> Just a) where
     Base64Url a = _Base64Url # a
 
--- | Bidirectional pattern synonym for unpadded base64-encoded 'ByteString' values.
---
-pattern Base64Unpadded :: ByteString -> ByteString
-pattern Base64Unpadded a <- (preview _Base64Unpadded -> Just a) where
-    Base64Unpadded a = _Base64Unpadded # a
-
 -- | Bidirectional pattern synonym for unpadded base64url-encoded 'ByteString' values.
 --
 pattern Base64UrlUnpadded :: ByteString -> ByteString
 pattern Base64UrlUnpadded a <- (preview _Base64UrlUnpadded -> Just a) where
     Base64UrlUnpadded a = _Base64UrlUnpadded # a
 
-#if MIN_VERSION_base64(0,3,0)
 -- | Bidirectional pattern synonym for leniently Base64-encoded 'ByteString' values
 --
 pattern Base64Lenient :: ByteString -> ByteString
@@ -192,4 +157,3 @@
 pattern Base64UrlLenient a <- (view (from _Base64UrlLenient) -> a) where
     Base64UrlLenient a = view _Base64UrlLenient a
 {-# COMPLETE Base64UrlLenient #-}
-#endif
diff --git a/src/Data/Text/Encoding/Base64/Lens.hs b/src/Data/Text/Encoding/Base64/Lens.hs
--- a/src/Data/Text/Encoding/Base64/Lens.hs
+++ b/src/Data/Text/Encoding/Base64/Lens.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE CPP #-}
 {-# LANGUAGE PatternSynonyms #-}
 {-# LANGUAGE ViewPatterns #-}
 -- |
@@ -17,21 +16,15 @@
 ( -- * Prisms
   _Base64
 , _Base64Url
-, _Base64Unpadded
 , _Base64UrlUnpadded
-#if MIN_VERSION_base64(0,3,0)
 , _Base64Lenient
 , _Base64UrlLenient
-#endif
   -- * Patterns
 , pattern Base64
 , pattern Base64Url
-, pattern Base64Unpadded
 , pattern Base64UrlUnpadded
-#if MIN_VERSION_base64(0,3,0)
 , pattern Base64Lenient
 , pattern Base64UrlLenient
-#endif
 ) where
 
 import Control.Lens
@@ -80,25 +73,6 @@
     Right a -> Just a
 {-# INLINE _Base64Url #-}
 
--- | A 'Prism' into the unpadded Base64 encoding of a
--- 'Text' value.
---
--- Please note that unpadded variants should only be used
--- when assumptions about the data can be made. In particular, if the length of
--- the input is divisible by 3, then this is a safe function to call.
---
--- >>> _Base64Unpadded # "Sun"
--- "U3Vu"
---
--- >>> "U3Vu" ^? _Base64Unpadded
--- Just "Sun"
---
-_Base64Unpadded :: Prism' Text Text
-_Base64Unpadded = prism' B64T.encodeBase64Unpadded $ \s -> case B64T.decodeBase64Unpadded s of
-    Left _ -> Nothing
-    Right a -> Just a
-{-# INLINE _Base64Unpadded #-}
-
 -- | A 'Prism' into the Base64-url encoding of a 'Text' value.
 --
 -- Please note that unpadded variants should only be used
@@ -117,7 +91,6 @@
     Right a -> Just a
 {-# INLINE _Base64UrlUnpadded #-}
 
-#if MIN_VERSION_base64(0,3,0)
 -- | An 'Iso'' into the Base64 encoding of a 'Text' value
 -- using lenient decoding.
 --
@@ -147,7 +120,6 @@
 --
 _Base64UrlLenient :: Iso' Text Text
 _Base64UrlLenient = iso B64TU.encodeBase64 B64TU.decodeBase64Lenient
-#endif
 
 -- -------------------------------------------------------------------------- --
 -- Patterns
@@ -164,19 +136,12 @@
 pattern Base64Url a <- (preview _Base64Url -> Just a) where
     Base64Url a = _Base64Url # a
 
--- | Unidirectional pattern synonym for unpadded base64-encoded 'Text' values.
---
-pattern Base64Unpadded :: Text -> Text
-pattern Base64Unpadded a <- (preview _Base64Unpadded -> Just a) where
-    Base64Unpadded a = _Base64Unpadded # a
-
 -- | Unidirectional pattern synonym for unpadded base64url-encoded 'Text' values.
 --
 pattern Base64UrlUnpadded :: Text -> Text
 pattern Base64UrlUnpadded a <- (preview _Base64UrlUnpadded -> Just a) where
     Base64UrlUnpadded a = _Base64UrlUnpadded # a
 
-#if MIN_VERSION_base64(0,3,0)
 -- | Bidirectional pattern synonym for leniently Base64-encoded 'Text' values
 --
 pattern Base64Lenient :: Text -> Text
@@ -190,4 +155,3 @@
 pattern Base64UrlLenient a <- (view (from _Base64UrlLenient) -> a) where
     Base64UrlLenient a = view _Base64UrlLenient a
 {-# COMPLETE Base64UrlLenient #-}
-#endif
