diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,13 @@
 # Revision history for hslua-module-text
 
+## 0.2.1 -- 2019-05-04
+
+- Require at least HsLua v1.0.3: that version has better support
+  for modules.
+
+- Rename `pushModuleText` to `pushModule`. The old name is keeped
+  as an alias for now.
+
 ## 0.2.0 -- 2018-09-24
 
 - Use hslua 1.0.
diff --git a/hslua-module-text.cabal b/hslua-module-text.cabal
--- a/hslua-module-text.cabal
+++ b/hslua-module-text.cabal
@@ -1,5 +1,5 @@
 name:                hslua-module-text
-version:             0.2.0
+version:             0.2.1
 synopsis:            Lua module for text
 description:         UTF-8 aware subset of Lua's `string` module.
 homepage:            https://github.com/hslua/hslua-module-text
@@ -7,12 +7,17 @@
 license-file:        LICENSE
 author:              Albert Krewinkel
 maintainer:          albert+hslua@zeitkraut.de
-copyright:           © 2017–2018 Albert Krewinkel
+copyright:           © 2017–2019 Albert Krewinkel
 category:            Foreign
 build-type:          Simple
 extra-source-files:  ChangeLog.md
                      test/hstext-test.lua
 cabal-version:       >=1.10
+tested-with:         GHC == 7.10.3
+                   , GHC == 8.0.2
+                   , GHC == 8.2.2
+                   , GHC == 8.4.4
+                   , GHC == 8.6.5
 
 source-repository head
   type:              git
@@ -22,7 +27,7 @@
   exposed-modules:     Foreign.Lua.Module.Text
   build-depends:       base       >= 4.7    && < 5
                      , bytestring >= 0.10.2 && < 0.11
-                     , hslua      >= 1.0    && < 1.1
+                     , hslua      >= 1.0.3  && < 1.2
                      , text       >= 1      && < 1.3
   hs-source-dirs:      src
   default-language:    Haskell2010
diff --git a/src/Foreign/Lua/Module/Text.hs b/src/Foreign/Lua/Module/Text.hs
--- a/src/Foreign/Lua/Module/Text.hs
+++ b/src/Foreign/Lua/Module/Text.hs
@@ -1,28 +1,7 @@
-{-
-Copyright © 2017–2018 Albert Krewinkel
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
--}
 {-# LANGUAGE OverloadedStrings #-}
 {-|
 Module      : Foreign.Lua.Module.Text
-Copyright   : © 2017–2018 Albert Krewinkel
+Copyright   : © 2017–2019 Albert Krewinkel
 License     : MIT
 Maintainer  : Albert Krewinkel <tarleb+hslua@zeitkraut.de>
 Stability   : alpha
@@ -31,7 +10,8 @@
 Provide a lua module containing a selection of useful Text functions.
 -}
 module Foreign.Lua.Module.Text
-  ( pushModuleText
+  ( pushModule
+  , pushModuleText
   , preloadTextModule
   )where
 
@@ -43,38 +23,25 @@
 import qualified Foreign.Lua as Lua
 import qualified Data.Text as T
 
--- | Pushes the @text@ module to the lua stack.
-pushModuleText :: Lua NumResults
-pushModuleText = do
+-- | Pushes the @text@ module to the Lua stack.
+pushModule :: Lua NumResults
+pushModule = do
   Lua.newtable
-  addFunction "lower" (return . T.toLower :: Text -> Lua Text)
-  addFunction "upper" (return . T.toUpper :: Text -> Lua Text)
-  addFunction "reverse" (return . T.reverse :: Text -> Lua Text)
-  addFunction "len" (return . fromIntegral . T.length :: Text -> Lua Lua.Integer)
-  addFunction "sub" sub
+  Lua.addfunction "lower" (return . T.toLower :: Text -> Lua Text)
+  Lua.addfunction "upper" (return . T.toUpper :: Text -> Lua Text)
+  Lua.addfunction "reverse" (return . T.reverse :: Text -> Lua Text)
+  Lua.addfunction "len" (return . fromIntegral . T.length :: Text -> Lua Lua.Integer)
+  Lua.addfunction "sub" sub
   return 1
 
+-- | Legacy alias for '@pushModule@'.
+pushModuleText :: Lua NumResults
+pushModuleText = pushModule
+
 -- | Add the text module under the given name to the table of preloaded
 -- packages.
 preloadTextModule :: String -> Lua ()
-preloadTextModule = flip addPackagePreloader pushModuleText
-
--- | Registers a preloading function. Takes an module name and the Lua operation
--- which produces the package.
-addPackagePreloader :: String -> Lua NumResults -> Lua ()
-addPackagePreloader name modulePusher = do
-  Lua.getfield Lua.registryindex Lua.preloadTableRegistryField
-  Lua.pushHaskellFunction modulePusher
-  Lua.setfield (-2) name
-  Lua.pop 1
-
--- | Attach a function to the table at the top of the stack, using the given
--- name.
-addFunction :: ToHaskellFunction a => String -> a -> Lua ()
-addFunction name fn = do
-  Lua.push name
-  Lua.pushHaskellFunction fn
-  Lua.rawset (-3)
+preloadTextModule = flip Lua.preloadhs pushModule
 
 -- | Returns a substring, using Lua's string indexing rules.
 sub :: Text -> Lua.Integer -> Lua.Optional Lua.Integer -> Lua Text
diff --git a/test/test-hslua-module-text.hs b/test/test-hslua-module-text.hs
--- a/test/test-hslua-module-text.hs
+++ b/test/test-hslua-module-text.hs
@@ -1,5 +1,5 @@
 {-
-Copyright © 2017–2018 Albert Krewinkel
+Copyright © 2017–2019 Albert Krewinkel
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
