diff --git a/Taxonomy.cabal b/Taxonomy.cabal
--- a/Taxonomy.cabal
+++ b/Taxonomy.cabal
@@ -1,11 +1,5 @@
 name:                Taxonomy
--- The package version.  See the Haskell package versioning policy (PVP) 
--- for standards guiding when and how versions should be incremented.
--- http://www.haskell.org/haskellwiki/Package_versioning_policy
--- PVP summary:      +-+------- breaking API changes
---                   | | +----- non-breaking API additions
---                   | | | +--- code changes with no API change
-version:             1.0.2
+version:             1.0.3
 synopsis:            Libary for parsing, processing and vizualization of taxonomy data
 description:         Haskell cabal Taxonomy libary contains tools, parsers, datastructures and visualisation
                      for the NCBI (National Center for Biotechnology Information) Taxonomy datasources.
@@ -33,25 +27,25 @@
 category:            Bioinformatics
 build-type:          Simple
 cabal-version:       >=1.8
-
+Tested-With: GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.2, GHC == 8.2.1
 source-repository head
   type:     git
   location: https://github.com/eggzilla/Taxonomy
 
 source-repository this
   type:     git
-  location: https://github.com/eggzilla/Taxonomy/tree/v1.0.2
-  tag:      v1.0.2
+  location: https://github.com/eggzilla/Taxonomy/tree/v1.0.3
+  tag:      v1.0.3
 
 library
   -- Modules exported by the library.
   exposed-modules:   Bio.TaxonomyData, Bio.Taxonomy 
  
   -- compiler-options:
-  ghc-options:         -Wall -O2 -fno-warn-unused-do-bind
+  ghc-options:         -Wall -fno-warn-unused-do-bind
 
   -- Other library packages from which modules are imported.
-  build-depends:       base >=4.5 && <5, parsec, either-unwrap, fgl, text, graphviz, bytestring, aeson, vector
+  build-depends:       base >=4.5 && <5, parsec, either-unwrap, fgl>=5.5.4.0, text, graphviz>=2999.12.0.4, bytestring, aeson, vector
 
   -- Directories containing source files.
   hs-source-dirs:      src
diff --git a/src/Bio/Taxonomy.hs b/src/Bio/Taxonomy.hs
--- a/src/Bio/Taxonomy.hs
+++ b/src/Bio/Taxonomy.hs
@@ -61,15 +61,17 @@
 import qualified Data.Vector as V
 import Data.Maybe    
 import qualified Data.Either.Unwrap as E
-import Data.Graph.Inductive
+import Data.Graph.Inductive.Graph
+import Data.Graph.Inductive.Query.SP (sp)
+import Data.Graph.Inductive.Query.BFS (level)
+import Data.Graph.Inductive.Tree
+import Data.Graph.Inductive.Basic
 import qualified Data.GraphViz as GV
 import qualified Data.GraphViz.Printing as GVP
 import qualified Data.GraphViz.Attributes.Colors as GVAC
 import qualified Data.GraphViz.Attributes.Complete as GVA
---import qualified Data.Text.Lazy as TL
---import qualified Data.ByteString.Char8 as B
 import qualified Data.ByteString.Lazy.Char8 as L
-import qualified Data.Aeson.Encode as AE
+import qualified Data.Aeson as AE
 import qualified Data.Text.Lazy as T
 --------------------------------------------------------
 
@@ -441,15 +443,15 @@
         taxonomySubTree = mkGraph filteredLNodes filteredledges :: Gr SimpleTaxon Double
 
 getVectorPath :: Node -> Gr SimpleTaxon Double -> Node -> V.Vector Node
-getVectorPath root graph node =  V.fromList (sp node root graph)
+getVectorPath root graph node =  maybe V.empty V.fromList (sp node root graph)
 
 getPath :: Node -> Gr SimpleTaxon Double -> Node -> Path
-getPath root graph node =  sp node root graph
+getPath root graph node =  maybe [] id (sp node root graph)
                            
 -- | Extract parent node with specified Rank
 getParentbyRank :: Node -> Gr SimpleTaxon Double -> Maybe Rank -> Maybe (Node, SimpleTaxon)
 getParentbyRank inputNode graph requestedRank = filteredLNode
-  where path = sp (inputNode :: Node) (1 :: Node) graph
+  where path =  maybe [] id (sp (inputNode :: Node) (1 :: Node) graph)
         nodeContext = map (context graph) path
         lnode = map labNode' nodeContext
         filteredLNode = findNodeByRank requestedRank lnode
@@ -490,9 +492,9 @@
           noRankNodes = filter (\(_,t) -> simpleRank t == Norank) inputNodes
 
 -- | Returns path between 2 maybe nodes. Used in TreeDistance tool.
-safeNodePath :: Maybe Node -> Gr SimpleTaxon Double -> Maybe Node -> Either String [Node]
+safeNodePath :: Maybe Node -> Gr SimpleTaxon Double -> Maybe Node -> Either String Path
 safeNodePath nodeid1 graphOutput nodeid2
-  | isJust nodeid1 && isJust nodeid2 = Right (sp (fromJust nodeid1) (fromJust nodeid2) (undir graphOutput))
+  | isJust nodeid1 && isJust nodeid2 = Right  (maybe [] id (sp (fromJust nodeid1) (fromJust nodeid2) (undir graphOutput)))
   | otherwise = Left "Both taxonomy ids must be provided for distance computation"
 
 ---------------------------------------
diff --git a/src/Bio/TaxonomyData.hs b/src/Bio/TaxonomyData.hs
--- a/src/Bio/TaxonomyData.hs
+++ b/src/Bio/TaxonomyData.hs
@@ -8,7 +8,9 @@
 --import qualified Data.ByteString as B
 import qualified Data.Aeson as A
 import qualified Data.Vector as V
-import Data.Graph.Inductive
+--import Data.Graph.Inductive
+import Data.Graph.Inductive.Graph
+import Data.Graph.Inductive.Tree
 import qualified Data.Text as T
 import qualified Data.Text.Lazy as TL   
 --import qualified Data.Text.Encoding
