diff --git a/main.rkt b/main.rkt
index f616cc9..d40a68d 100644
--- a/main.rkt
+++ b/main.rkt
@@ -1,9 +1,9 @@
 #lang racket/base
-(require subtemplate/ddd-forms
+(require subtemplate/private/ddd-forms
          stxparse-info/case
          stxparse-info/parse
-         subtemplate/unsyntax-preparse
-         subtemplate/top-subscripts
+         subtemplate/private/unsyntax-preparse
+         subtemplate/private/top-subscripts
          (only-in racket/base [... …])
          (only-in stxparse-info/parse [...+ …+]))
 (provide
@@ -13,7 +13,7 @@
  (all-from-out stxparse-info/case)
  ;; stxparse-info/parse
  (all-from-out stxparse-info/parse)
- ;; subtemplate/unsyntax-preparse
+ ;; subtemplate/private/unsyntax-preparse
  (rename-out
   [template-ddd template]
   [subtemplate-ddd subtemplate]
@@ -21,9 +21,9 @@
   [quasisubtemplate-ddd quasisubtemplate]
   [subtemplate-ddd syntax]
   [quasisubtemplate-ddd quasisyntax])
- ;; subtemplate/top-subscripts
+ ;; subtemplate/private/top-subscripts
  ;; => #%top
- (all-from-out subtemplate/top-subscripts)
+ (all-from-out subtemplate/private/top-subscripts)
  ;; aliases
  …
  …+)
\ No newline at end of file
diff --git a/private/ddd-forms.rkt b/private/ddd-forms.rkt
index 2d63fb0..831cf18 100644
--- a/private/ddd-forms.rkt
+++ b/private/ddd-forms.rkt
@@ -17,7 +17,7 @@
          splicing-list-l)
 
 (require racket/list
-         subtemplate/ddd
+         subtemplate/private/ddd
          stxparse-info/case
          stxparse-info/parse
          phc-toolkit/untyped
diff --git a/private/ddd.rkt b/private/ddd.rkt
index b2d3236..d97e474 100644
--- a/private/ddd.rkt
+++ b/private/ddd.rkt
@@ -5,7 +5,7 @@
 
 (require stxparse-info/current-pvars
          phc-toolkit/untyped
-         subtemplate/copy-attribute
+         subtemplate/private/copy-attribute
          (prefix-in - syntax/parse/private/residual)
          (for-syntax racket/contract
                      racket/syntax
diff --git a/private/override.rkt b/private/override.rkt
index 19b9705..c797960 100644
--- a/private/override.rkt
+++ b/private/override.rkt
@@ -1,6 +1,6 @@
 #lang racket
 (require racket/require
-         (rename-in subtemplate/template-subscripts
+         (rename-in subtemplate/private/template-subscripts
                     [subtemplate syntax]
                     [quasisubtemplate quasisyntax])
          stxparse-info/parse
@@ -11,7 +11,7 @@
                     quasitemplate/loc)
          stxparse-info/case
          (subtract-in racket/syntax stxparse-info/case))
-(provide (all-from-out subtemplate/template-subscripts
+(provide (all-from-out subtemplate/private/template-subscripts
                        stxparse-info/parse
                        stxparse-info/parse/experimental/template
                        stxparse-info/case
diff --git a/private/unsyntax-preparse.rkt b/private/unsyntax-preparse.rkt
index 43c3189..c06e634 100644
--- a/private/unsyntax-preparse.rkt
+++ b/private/unsyntax-preparse.rkt
@@ -8,8 +8,8 @@
 (require (rename-in stxparse-info/parse/experimental/template
                     [?? stxparse:??]
                     [?@ stxparse:?@])
-         subtemplate/ddd-forms
-         subtemplate/template-subscripts
+         subtemplate/private/ddd-forms
+         subtemplate/private/template-subscripts
          (only-in racket/base [... …])
          stxparse-info/parse
          stxparse-info/case
diff --git a/scribblings/subtemplate.scrbl b/scribblings/subtemplate.scrbl
index f2ca6f0..8321286 100644
--- a/scribblings/subtemplate.scrbl
+++ b/scribblings/subtemplate.scrbl
@@ -1,13 +1,13 @@
 #lang scribble/manual
 @require[scriblib/footnote
-         @for-label[subtemplate/template-subscripts
+         @for-label[subtemplate/private/template-subscripts
                     syntax/parse/experimental/template
                     racket/base]]
 
 @title{Subtemplate}
 @author[@author+email["Georges Dupéron" "georges.duperon@gmail.com"]]
 
-@defmodule[subtemplate/template-subscripts]
+@defmodule[subtemplate/private/template-subscripts]
 
 @defform*[{(subtemplate template)
            (subtemplate template #:properties (prop ...))}
@@ -39,17 +39,17 @@
 
 @section{Overriding the default @racket[#'…] and @racket[#`…]}
 
-@defmodule[subtemplate/override]
+@defmodule[subtemplate/private/override]
 
-The @racketmodname[subtemplate/override] module re-provides
+The @racketmodname[subtemplate/private/override] module re-provides
 @racket[subtemplate] as @racket[syntax], and @racket[quasisubtemplate] as
 @racket[quasisyntax]. This allows @racketmodname[subtemplate] to be used via
 the reader shorthands @racket[#'…] and @racket[#`…].
 
-The @racketmodname[subtemplate/override] module also re-provides
+The @racketmodname[subtemplate/private/override] module also re-provides
 @racketmodname[stxparse-info/parse] and @racketmodname[stxparse-info/case].
 
-The @racketmodname[subtemplate/override] module also re-provides
+The @racketmodname[subtemplate/private/override] module also re-provides
 @racketmodname[stxparse-info/parse/experimental/template], but without
 @racket[template] and @racket[quasitemplate], which are remapped to their
 @racket[sub] equivalents, and without @racket[template/loc] and
diff --git a/test/test-copy-attribute.rkt b/test/test-copy-attribute.rkt
index 524533b..c0356ed 100644
--- a/test/test-copy-attribute.rkt
+++ b/test/test-copy-attribute.rkt
@@ -1,6 +1,6 @@
 #lang racket
 
-(require subtemplate/copy-attribute
+(require subtemplate/private/copy-attribute
          stxparse-info/parse
          stxparse-info/parse/experimental/template
          phc-toolkit/untyped
diff --git a/test/test-ddd-forms.rkt b/test/test-ddd-forms.rkt
index 051ee6d..7defec7 100644
--- a/test/test-ddd-forms.rkt
+++ b/test/test-ddd-forms.rkt
@@ -1,6 +1,6 @@
 #lang racket
 
-(require subtemplate/ddd-forms
+(require subtemplate/private/ddd-forms
          stxparse-info/case
          stxparse-info/parse
          rackunit
diff --git a/test/test-ddd-top.rkt b/test/test-ddd-top.rkt
index 6e0bf8c..d46f29d 100644
--- a/test/test-ddd-top.rkt
+++ b/test/test-ddd-top.rkt
@@ -1,8 +1,8 @@
 #lang racket
 
-(require subtemplate/top-subscripts
-         subtemplate/ddd-forms
-         (except-in subtemplate/override ?? ?@)
+(require subtemplate/private/top-subscripts
+         subtemplate/private/ddd-forms
+         (except-in subtemplate/private/override ?? ?@)
          stxparse-info/case
          stxparse-info/parse
          rackunit
diff --git a/test/test-ddd.rkt b/test/test-ddd.rkt
index 766910e..aca448e 100644
--- a/test/test-ddd.rkt
+++ b/test/test-ddd.rkt
@@ -1,5 +1,5 @@
 #lang racket
-(require subtemplate/ddd
+(require subtemplate/private/ddd
          stxparse-info/case
          stxparse-info/parse
          (only-in racket/base [... …])
diff --git a/test/test-optional.rkt b/test/test-optional.rkt
index a7df09f..3fe86c7 100644
--- a/test/test-optional.rkt
+++ b/test/test-optional.rkt
@@ -1,5 +1,5 @@
 #lang racket
-(require subtemplate/ddd-forms
+(require subtemplate/private/ddd-forms
          stxparse-info/case
          stxparse-info/parse
          rackunit
diff --git a/test/test-or-syntax.rkt b/test/test-or-syntax.rkt
index 727aad3..2ccf83f 100644
--- a/test/test-or-syntax.rkt
+++ b/test/test-or-syntax.rkt
@@ -1,7 +1,7 @@
 #lang racket
 
-(require subtemplate/ddd
-         subtemplate/unsyntax-preparse
+(require subtemplate/private/ddd
+         subtemplate/private/unsyntax-preparse
          stxparse-info/case
          stxparse-info/parse
          rackunit
diff --git a/test/test-or.rkt b/test/test-or.rkt
index a2242ee..25b4fd5 100644
--- a/test/test-or.rkt
+++ b/test/test-or.rkt
@@ -1,8 +1,8 @@
 #lang racket
 
-(require subtemplate/ddd
-         subtemplate/ddd-forms
-         subtemplate/unsyntax-preparse
+(require subtemplate/private/ddd
+         subtemplate/private/ddd-forms
+         subtemplate/private/unsyntax-preparse
          stxparse-info/case
          stxparse-info/parse
          rackunit
diff --git a/test/test-splice-append.rkt b/test/test-splice-append.rkt
index ae38555..ce963ab 100644
--- a/test/test-splice-append.rkt
+++ b/test/test-splice-append.rkt
@@ -1,5 +1,5 @@
 #lang racket/base
-(require (only-in subtemplate/ddd-forms
+(require (only-in subtemplate/private/ddd-forms
                   splicing-list
                   splice-append
                   splice-append*)
diff --git a/test/test-splice.rkt b/test/test-splice.rkt
index 93d9057..577a03c 100644
--- a/test/test-splice.rkt
+++ b/test/test-splice.rkt
@@ -1,6 +1,6 @@
 #lang racket
 
-(require subtemplate/ddd-forms
+(require subtemplate/private/ddd-forms
          rackunit)
 
 (check-equal? (let ([l '(4 5 6)])
diff --git a/test/test-subtemplate-detect-stxinfo.rkt b/test/test-subtemplate-detect-stxinfo.rkt
index 43bcb43..417d3e5 100644
--- a/test/test-subtemplate-detect-stxinfo.rkt
+++ b/test/test-subtemplate-detect-stxinfo.rkt
@@ -1,6 +1,6 @@
 #lang racket
 (module m-ok racket
-  (require subtemplate/template-subscripts
+  (require subtemplate/private/template-subscripts
            stxparse-info/parse
            stxparse-info/case
            rackunit
@@ -11,7 +11,7 @@
       (subtemplate ok)))))
 
 (module m-no-parse racket
-  (require subtemplate/template-subscripts
+  (require subtemplate/private/template-subscripts
            stxparse-info/case
            rackunit
            syntax/macro-testing)
@@ -21,7 +21,7 @@
       (subtemplate ok)))))
 
 (module m-wrong-parse racket
-  (require subtemplate/template-subscripts
+  (require subtemplate/private/template-subscripts
            syntax/parse
            stxparse-info/case
            rackunit
@@ -33,7 +33,7 @@
       (subtemplate ok)))))
 
 (module m-wrong-case racket
-  (require subtemplate/template-subscripts
+  (require subtemplate/private/template-subscripts
            stxparse-info/parse
            rackunit
            syntax/macro-testing)
@@ -43,7 +43,7 @@
       (subtemplate ok)))))
 
 (module m-no-parse-wrong-case racket
-  (require subtemplate/template-subscripts
+  (require subtemplate/private/template-subscripts
            rackunit
            syntax/macro-testing)
   (check-exn #rx"subtemplate: syntax-parse seems undefined,"
@@ -52,7 +52,7 @@
       (subtemplate ok)))))
 
 (module m-wrong-parse-wrong-case racket
-  (require subtemplate/template-subscripts
+  (require subtemplate/private/template-subscripts
            syntax/parse
            rackunit
            syntax/macro-testing)
diff --git a/test/test-subtemplate.rkt b/test/test-subtemplate.rkt
index d7001b9..9cddffd 100644
--- a/test/test-subtemplate.rkt
+++ b/test/test-subtemplate.rkt
@@ -1,5 +1,5 @@
 #lang racket
-(require subtemplate/template-subscripts
+(require subtemplate/private/template-subscripts
          stxparse-info/parse
          stxparse-info/parse/experimental/template
          stxparse-info/case
diff --git a/test/test-unsyntax.rkt b/test/test-unsyntax.rkt
index 1e69787..bba30c3 100644
--- a/test/test-unsyntax.rkt
+++ b/test/test-unsyntax.rkt
@@ -1,10 +1,10 @@
 #lang racket/base
 
-(require subtemplate/top-subscripts
-         subtemplate/ddd-forms
-         subtemplate/unsyntax-preparse
-         subtemplate/template-subscripts
-         (except-in subtemplate/override ?? ?@)
+(require subtemplate/private/top-subscripts
+         subtemplate/private/ddd-forms
+         subtemplate/private/unsyntax-preparse
+         subtemplate/private/template-subscripts
+         (except-in subtemplate/private/override ?? ?@)
          stxparse-info/case
          stxparse-info/parse
          rackunit