diff --git a/haskell-reflect.cabal b/haskell-reflect.cabal
--- a/haskell-reflect.cabal
+++ b/haskell-reflect.cabal
@@ -1,5 +1,5 @@
 name:           haskell-reflect
-version:        0.1
+version:        0.9
 
 license:        MIT
 license-file:   LICENSE
@@ -21,24 +21,12 @@
     location: http://hub.darcs.net/scravy/haskell-reflect
 
 Library
-    build-depends:      base >= 4.5 && < 5
-                        , containers >= 0.4.2.1
-                        , mtl >= 2.1.1
-                        , transformers >= 0.3
-                        , hint >= 0.3.3.4
-                        , parsec >= 3.1.2
-                        , template-haskell >= 2.7
-                        , MonadCatchIO-mtl
-
     hs-source-dirs:     src
 
-    exposed-modules:    Language.Haskell.Reflect,
-                        Language.Haskell.Reflect.Types,
-                        Language.Haskell.Reflect.Utils
+    exposed-modules:    Language.Haskell.Reflect
+                        , Language.Haskell.Reflect.Types
 
-Executable hsreflect
     build-depends:      base >= 4.5 && < 5
-                        , haskell-reflect
                         , containers >= 0.4.2.1
                         , mtl >= 2.1.1
                         , transformers >= 0.3
@@ -46,9 +34,4 @@
                         , parsec >= 3.1.2
                         , template-haskell >= 2.7
                         , MonadCatchIO-mtl
-
-
-    hs-source-dirs:     src
-    main-is:            main.hs
-
 
diff --git a/src/Language/Haskell/Reflect.hs b/src/Language/Haskell/Reflect.hs
--- a/src/Language/Haskell/Reflect.hs
+++ b/src/Language/Haskell/Reflect.hs
@@ -11,6 +11,7 @@
 import Prelude
 
 import Data.Either
+--import Data.Functor.Identity
 import Data.Map (Map)
 import qualified Data.Map as Map
 
@@ -21,7 +22,44 @@
 import Language.Haskell.Interpreter
 import Language.Haskell.Reflect.Types
 
+--import Text.Parsec
 
+{-
+readTypeFromSignature :: String -> [HType]
+readTypeFromSignature signature = runParserT parse () "-" signature >>= either [] id
+  where
+    pTypes = sepBy pType (string " -> ")
+    pType = pParens <|> pVar
+    pParens = do
+        char '('
+        types <- pTypes
+        char ')'
+        return types
+    pVar = do
+-}      
+
+readContextFromSignature :: String -> a
+readContextFromSignature _context = undefined
+
+readKindFromSignature :: String -> a
+readKindFromSignature _kind = undefined
+
+
+checkModuleAvailability :: (Functor m, C.MonadCatchIO m)
+                        => [String] -> m [(String, Bool)]
+-- ^ Checks whether the given modules are installed in the
+-- package database or not.
+checkModuleAvailability names = do
+    result <- runInterpreter $ do
+        set [ installedModulesInScope := True
+            , languageExtensions := [TemplateHaskell, MagicHash] ]
+        let check name = E.catchError
+                (getModuleExports name >>= return . const True)
+                (return . const False)
+        mapM check names >>= return . zip names
+    either C.throw return result
+        
+
 reflectModules :: (Functor m, C.MonadCatchIO m)
                => [String] -> m (Map String InterpreterError, Map String HModule)
 reflectModules names = do
@@ -66,7 +104,7 @@
                     return $ HFunction {
                         functionName = name,
                         functionSignature = signature,
-                        functionType = [],
+                        functionType = [], --readTypeFromSignature signature,
                         functionContext = []
                       }
 
diff --git a/src/Language/Haskell/Reflect/Types.hs b/src/Language/Haskell/Reflect/Types.hs
--- a/src/Language/Haskell/Reflect/Types.hs
+++ b/src/Language/Haskell/Reflect/Types.hs
@@ -16,8 +16,8 @@
 
 instance IsString HName where
     fromString n@(x:_)
-        | isUpper x = TyVar n
-        | isLower x = QName n
+        | isUpper x = QName n
+        | otherwise = TyVar n
     fromString "" = error "empty name"
     fromString _  = error "not a name"
 
diff --git a/src/Language/Haskell/Reflect/Utils.hs b/src/Language/Haskell/Reflect/Utils.hs
deleted file mode 100644
--- a/src/Language/Haskell/Reflect/Utils.hs
+++ /dev/null
@@ -1,24 +0,0 @@
-{-# LANGUAGE Haskell2010 #-}
-{-# OPTIONS -Wall #-}
-
-module Language.Haskell.Reflect.Utils where
-
-import Data.Map
-
-import Language.Haskell.TH
-import Language.Haskell.Reflect.Types
-
-typeclassInfo :: Info -> Q HTypeclass
-typeclassInfo _ = do
-    return $ HTypeclass {
-        typeclassName = "",
-        typeclassInstances = []
-      }
-
-instanceInfo :: Info -> Q HInstance
-instanceInfo _ = do
-    return $ HInstance
-
-
-
-
diff --git a/src/main.hs b/src/main.hs
deleted file mode 100644
--- a/src/main.hs
+++ /dev/null
@@ -1,21 +0,0 @@
-{-# LANGUAGE Haskell2010
- #-}
-{-# OPTIONS
-    -Wall
- #-}
-
-module Main where
-
-import Prelude
-import Language.Haskell.Reflect
-
-import System.Environment
-
-
-main :: IO ()
-main = getArgs >>= reflectModules >>= print
-
-
-
-
-
