diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -106,7 +106,7 @@
 		<*> env "PG_PORT"
 		<*> env "PG_USER"
 		<*> env "PG_PASS"
-		<*> env "PG_DB")
+		<*> env "PG_DB"
 
 ------------------------------------------------------------------------------
 -- | To Environment Instances
diff --git a/envy.cabal b/envy.cabal
--- a/envy.cabal
+++ b/envy.cabal
@@ -1,9 +1,9 @@
 name:                envy
-version:             1.0.0.0
+version:             1.1.0.0
 synopsis:            An environmentally friendly way to deal with environment variables
 license:             BSD3
 license-file:        LICENSE
-author:              David Johnson, Tim Adams
+author:              David Johnson, Tim Adams, Eric Mertens
 maintainer:          djohnson.m@gmail.com
 copyright:           David Johnson (c) 2015
 category:            System
@@ -36,7 +36,7 @@
     main-is:            Main.hs
     build-depends:      base                 >= 4.7 && < 5
                       , bytestring           == 0.10.*
-                      , envy                 == 1.0.*
+                      , envy                 == 1.1.*
                       , hspec                == 2.2.*
                       , mtl                  == 2.2.*
                       , quickcheck-instances == 0.3.*
diff --git a/src/System/Envy.hs b/src/System/Envy.hs
--- a/src/System/Envy.hs
+++ b/src/System/Envy.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE DeriveGeneric #-}
 {-# LANGUAGE RecordWildCards            #-}
 {-# LANGUAGE TypeOperators              #-}
 {-# LANGUAGE FlexibleContexts           #-}
@@ -62,6 +63,8 @@
          -- * Generics
        , DefConfig (..)
        , Option (..)
+       , runEnv
+       , gFromEnvCustom
        ) where
 ------------------------------------------------------------------------------
 import           Control.Applicative
@@ -94,10 +97,18 @@
 
 ------------------------------------------------------------------------------
 -- | Executes `Parser`
-evalParser :: FromEnv a => Parser a -> IO (Either String a)
+evalParser :: Parser a -> IO (Either String a)
 evalParser = runExceptT . runParser
 
 ------------------------------------------------------------------------------
+-- | For use with Generics, no `FromEnv` typeclass necessary
+--
+-- > getPgConfig :: IO (Either String ConnectInfo)
+-- > getPgConfig = runEnv $ gFromEnvCustom defOption
+runEnv :: Parser a -> IO (Either String a)
+runEnv = runExceptT . runParser
+
+------------------------------------------------------------------------------
 -- | Environment variable getter
 getE
   :: forall a . (Typeable a, Var a)
@@ -160,11 +171,17 @@
 -- | `FromEnv` Typeclass w/ Generic default implementation
 class FromEnv a where
   fromEnv :: Parser a
-  fromEnvCustom :: (DefConfig a, Generic a, GFromEnv (Rep a)) => Option -> Parser a
-  fromEnvCustom opts = to <$> gFromEnv (from (defConfig :: a)) opts
   default fromEnv :: (DefConfig a, Generic a, GFromEnv (Rep a)) => Parser a
-  fromEnv = fromEnvCustom defOption
+  fromEnv = gFromEnvCustom defOption
 
+------------------------------------------------------------------------------
+-- | Meant for specifying a custom `Option` for environment retrieval
+--
+-- > instance FromEnv PGConfig where
+-- >   fromEnv = gFromEnvCustom Option { dropPrefixCount = 8, customPrefix = "PG" }
+--
+gFromEnvCustom :: forall a . (DefConfig a, Generic a, GFromEnv (Rep a)) => Option -> Parser a
+gFromEnvCustom opts = to <$> gFromEnv (from (defConfig :: a)) opts
 ------------------------------------------------------------------------------
 -- | `Generic` FromEnv
 class GFromEnv f where
