diff --git a/library/Rebase/Control/Selective/Multi.hs b/library/Rebase/Control/Selective/Multi.hs
new file mode 100644
--- /dev/null
+++ b/library/Rebase/Control/Selective/Multi.hs
@@ -0,0 +1,7 @@
+module Rebase.Control.Selective.Multi
+(
+  module Control.Selective.Multi
+)
+where
+
+import Control.Selective.Multi
diff --git a/library/Rebase/Prelude.hs b/library/Rebase/Prelude.hs
--- a/library/Rebase/Prelude.hs
+++ b/library/Rebase/Prelude.hs
@@ -11,16 +11,76 @@
 where
 
 
--- base-prelude
--------------------------
-import BasePrelude as Exports hiding (fail, Alt, first, second, orElse)
-
 -- base
 -------------------------
-import Rebase.Data.Bifunctor as Exports
-import Rebase.Data.Functor.Compose as Exports
-import Rebase.Data.Functor.Identity as Exports
-import Rebase.Data.List as Exports (List)
+import Control.Applicative as Exports
+import Control.Arrow as Exports hiding (first, second)
+import Control.Category as Exports
+import Control.Concurrent as Exports
+import Control.Exception as Exports
+import Control.Monad as Exports hiding (fail, mapM_, sequence_, forM_, msum, mapM, sequence, forM)
+import Control.Monad.IO.Class as Exports
+import Control.Monad.Fail as Exports
+import Control.Monad.Fix as Exports hiding (fix)
+import Control.Monad.ST as Exports
+import Data.Bifunctor as Exports
+import Data.Bits as Exports
+import Data.Bool as Exports
+import Data.Char as Exports
+import Data.Coerce as Exports
+import Data.Complex as Exports
+import Data.Data as Exports
+import Data.Dynamic as Exports
+import Data.Either as Exports
+import Data.Fixed as Exports
+import Data.Foldable as Exports
+import Data.Function as Exports hiding (id, (.))
+import Data.Functor as Exports
+import Data.Functor.Compose as Exports
+import Data.Functor.Contravariant as Exports
+import Data.Functor.Identity as Exports
+import Data.Int as Exports
+import Data.IORef as Exports
+import Data.Ix as Exports
+import Data.List as Exports hiding (sortOn, isSubsequenceOf, uncons, concat, foldr, foldl1, maximum, minimum, product, sum, all, and, any, concatMap, elem, foldl, foldr1, notElem, or, find, maximumBy, minimumBy, mapAccumL, mapAccumR, foldl')
+import Data.List.NonEmpty as Exports (NonEmpty(..))
+import Data.Maybe as Exports
+import Data.Monoid as Exports hiding (Alt)
+import Data.Ord as Exports
+import Data.Proxy as Exports
+import Data.Ratio as Exports
+import Data.STRef as Exports
+import Data.String as Exports
+import Data.Traversable as Exports
+import Data.Tuple as Exports
+import Data.Unique as Exports
+import Data.Version as Exports
+import Data.Void as Exports
+import Data.Word as Exports
+import Debug.Trace as Exports
+import Foreign.ForeignPtr as Exports
+import Foreign.Ptr as Exports
+import Foreign.StablePtr as Exports
+import Foreign.Storable as Exports
+import GHC.Conc as Exports hiding (orElse, withMVar, threadWaitWriteSTM, threadWaitWrite, threadWaitReadSTM, threadWaitRead)
+import GHC.Exts as Exports (lazy, inline, sortWith, groupWith)
+import GHC.Generics as Exports (Generic)
+import GHC.IO.Exception as Exports
+import Numeric as Exports
+import Prelude as Exports hiding (fail, concat, foldr, mapM_, sequence_, foldl1, maximum, minimum, product, sum, all, and, any, concatMap, elem, foldl, foldr1, notElem, or, mapM, sequence, id, (.))
+import System.Environment as Exports
+import System.Exit as Exports
+import System.IO as Exports (Handle, hClose)
+import System.IO.Error as Exports
+import System.IO.Unsafe as Exports
+import System.Mem as Exports
+import System.Mem.StableName as Exports
+import System.Timeout as Exports
+import Text.ParserCombinators.ReadP as Exports (ReadP, ReadS, readP_to_S, readS_to_P)
+import Text.ParserCombinators.ReadPrec as Exports (ReadPrec, readPrec_to_P, readP_to_Prec, readPrec_to_S, readS_to_Prec)
+import Text.Printf as Exports (printf, hPrintf)
+import Text.Read as Exports (Read(..), readMaybe, readEither)
+import Unsafe.Coerce as Exports
 
 -- profunctors
 -------------------------
@@ -66,7 +126,7 @@
 
 -- selective
 -------------------------
-import Rebase.Control.Selective as Exports
+import Rebase.Control.Selective as Exports hiding (swapEither)
 
 -- transformers
 -------------------------
diff --git a/rebase.cabal b/rebase.cabal
--- a/rebase.cabal
+++ b/rebase.cabal
@@ -1,5 +1,5 @@
 name: rebase
-version: 1.4.1
+version: 1.5
 synopsis: A more progressive alternative to the "base" package
 description:
   This package is intended for those who are tired of keeping
@@ -113,6 +113,7 @@
     Rebase.Control.Monad.Zip
     Rebase.Control.Selective
     Rebase.Control.Selective.Free
+    Rebase.Control.Selective.Multi
     Rebase.Control.Selective.Rigid.Free
     Rebase.Control.Selective.Rigid.Freer
     Rebase.Data.Biapplicative
@@ -404,29 +405,27 @@
     Rebase.Unsafe.Coerce
   build-depends:
     base >=4.10 && <5,
-    base-prelude >=0.1 && <2,
-    bifunctors >=5 && <6,
+    bifunctors >=5.5 && <5.6,
     bytestring >=0.10 && <0.11,
-    containers >=0.5 && <0.7,
-    contravariant >=1 && <2,
-    contravariant-extras >=0.3.2 && <0.4,
-    comonad >=5 && <6,
-    deepseq >=1.4 && <2,
-    dlist >=0.7 && <0.9,
-    either >=5 && <6,
-    fail >=4.9 && <5,
-    hashable >=1 && <2,
-    mtl >=2.2 && <3.0,
-    profunctors >=5 && <6,
+    containers >=0.6 && <0.7,
+    contravariant >=1.5 && <1.6,
+    contravariant-extras >=0.3 && <0.4,
+    comonad >=5 && <5.1,
+    deepseq >=1.4 && <1.5,
+    dlist >=0.8 && <0.9,
+    either >=5 && <5.1,
+    hashable >=1.3 && <1.4,
+    mtl >=2.2 && <2.3,
+    profunctors >=5.5 && <5.6,
     scientific >=0.3 && <0.4,
-    selective >=0.3 && <0.4,
-    semigroupoids >=5.2.2 && <6,
-    semigroups >=0.16 && <0.20,
-    stm >=2 && <3,
-    text >=1 && <2,
-    time >=1.5 && <2,
-    transformers >=0.4 && <0.6,
+    selective >=0.4 && <0.5,
+    semigroupoids >=5.3 && <5.4,
+    semigroups >=0.19 && <0.20,
+    stm >=2.5 && <2.6,
+    text >=1.2 && <1.3,
+    time >=1.9 && <1.10,
+    transformers >=0.5 && <0.6,
     unordered-containers >=0.2 && <0.3,
-    uuid == 1.*,
-    vector >=0.10 && <0.13,
+    uuid >=1.3 && <1.4,
+    vector >=0.12 && <0.13,
     void >=0.7 && <0.8
