diff --git a/HulkImport.cabal b/HulkImport.cabal
--- a/HulkImport.cabal
+++ b/HulkImport.cabal
@@ -1,5 +1,5 @@
 name:                HulkImport
-version:             0.1.0.2
+version:             0.1.0.3
 synopsis:            Easily bulk import CSV data to SQL Server
 description:         Please see README.md
 homepage:            http://github.com/tobs169/HulkImport#readme
diff --git a/src/CSV/Parse.hs b/src/CSV/Parse.hs
--- a/src/CSV/Parse.hs
+++ b/src/CSV/Parse.hs
@@ -1,36 +1,40 @@
+{-# LANGUAGE OverloadedStrings #-}
 module CSV.Parse
     ( parse
     ) where
 
 import qualified Data.Attoparsec.Text as A
 import qualified Data.Text as Text
+import Control.Applicative
 
 import CSV.Types
 
 -- | 'parse' parses text in the CSV format.  Delimiters are ',' and new lines.
 -- Quotation is performed with '"'.
 -- TODO: Files in the wrong format throw an error :(   
-parse :: Text.Text -> CSV Text.Text
+parse :: Text.Text -> CSV SQLVal
 parse text =
     case A.parseOnly csvParser text of
       Left  s  -> error s
       Right c -> c
 
-csvParser :: A.Parser (CSV Text.Text)
+csvParser :: A.Parser (CSV SQLVal)
 csvParser = do
   rows <- A.sepBy1 rowParser (A.skip A.isEndOfLine) 
   return (CSV rows)
 
 
-rowParser :: A.Parser [Text.Text]
-rowParser = A.sepBy1 elementParser $ A.char ','
+rowParser :: A.Parser [SQLVal]
+rowParser = A.sepBy1 elementParser $ A.string ", "
 
-elementParser :: A.Parser Text.Text
-elementParser = do 
-  text <- A.many1 $ A.choice
-          [ textParser
-          , quotationParser ]
-  return (Text.concat text)
+elementParser :: A.Parser SQLVal
+elementParser =
+    I <$> A.decimal
+    <|>  do
+      text <- A.many1 $
+              textParser
+              <|> quotationParser
+      return (NVar $ Text.concat text)
 
 textParser :: A.Parser Text.Text
 textParser = A.takeWhile1 (A.notInClass [',','\n', '"'])
diff --git a/src/CSV/SQL.hs b/src/CSV/SQL.hs
--- a/src/CSV/SQL.hs
+++ b/src/CSV/SQL.hs
@@ -7,18 +7,34 @@
 import qualified Data.Text as T
 
 -- | Converts CSV data to the Values clause of an insert statement
-toSQL :: CSV T.Text -> String
+toSQL :: RenderSqlType a => CSV a -> String
 toSQL  = render . csvDoc
 
-csvDoc :: CSV T.Text -> Doc
+csvDoc :: RenderSqlType a => CSV a -> Doc
 csvDoc (CSV rows) = hcat (text "VALUES " : fmap rowDoc rows)
                    <> text "\nGO"
 
-rowDoc :: [T.Text] -> Doc
+rowDoc :: RenderSqlType a => [a] -> Doc
 rowDoc  =
     (<> text ", ") .
     parens
          . hcat
-         . punctuate (text ",")
-         . map (text . T.unpack)
+         . punctuate (text ", ")
+         . map elemDoc
 
+elemDoc :: RenderSqlType a => a -> Doc
+elemDoc = renderSQL
+
+
+class RenderSqlType a where
+    renderSQL :: a -> Doc
+
+instance RenderSqlType T.Text  where
+    renderSQL = (char  'N' <> ) . quotes .  text . T.unpack . T.strip 
+
+instance RenderSqlType Int where
+    renderSQL = int
+
+instance RenderSqlType SQLVal where
+    renderSQL (I i) = renderSQL i
+    renderSQL (NVar t) = renderSQL t
diff --git a/src/CSV/Types.hs b/src/CSV/Types.hs
--- a/src/CSV/Types.hs
+++ b/src/CSV/Types.hs
@@ -1,4 +1,7 @@
-module CSV.Types ( CSV (..)) where 
+module CSV.Types ( CSV (..), SQLVal(..)) where 
 
+import Data.Text (Text)
 
 data CSV a = CSV [[a]] deriving Show
+
+data SQLVal = I Int | NVar Text
