diff --git a/demo/Main.hs b/demo/Main.hs
--- a/demo/Main.hs
+++ b/demo/Main.hs
@@ -3,6 +3,7 @@
 import Prelude
 import qualified Optima
 import qualified Attoparsec.Data as Attoparsec
+import qualified Data.Text as Text
 
 
 main = parseOpts >>= print where
@@ -29,7 +30,8 @@
             Optima.member "e" textParam,
             Optima.subgroup "subgroup" (asum [
                 Optima.member "f" textParam,
-                Optima.member "g" (flag $> "slkdfjsdkj")
+                Optima.member "g" (flag $> "slkdfjsdkj"),
+                Text.concat <$> some (Optima.member "h" textParam)
               ])
             ])))
     where
diff --git a/library/Optima.hs b/library/Optima.hs
--- a/library/Optima.hs
+++ b/library/Optima.hs
@@ -93,6 +93,8 @@
 instance Alternative ParamGroup where
   empty = ParamGroup (\ _ -> empty)
   (<|>) (ParamGroup left) (ParamGroup right) = ParamGroup (\ prefix -> left prefix <|> right prefix)
+  many (ParamGroup parser) = ParamGroup (\ prefix -> many (parser prefix))
+  some (ParamGroup parser) = ParamGroup (\ prefix -> some (parser prefix))
 
 deriving instance Functor Param
 
diff --git a/optima.cabal b/optima.cabal
--- a/optima.cabal
+++ b/optima.cabal
@@ -1,5 +1,5 @@
 name: optima
-version: 0.3
+version: 0.3.0.1
 category: CLI, Parsing, Options
 synopsis: Simple command line interface arguments parser
 homepage: https://github.com/metrix-ai/optima
