diff --git a/appc.cabal b/appc.cabal
--- a/appc.cabal
+++ b/appc.cabal
@@ -1,5 +1,5 @@
 name:                appc
-version:             0.0.2
+version:             0.0.3
 license:             MIT
 license-file:        LICENSE
 author:              Tomas Carnecky
@@ -17,11 +17,13 @@
     hs-source-dirs:      src
 
     exposed-modules:
+        Data.AppContainer,
         Data.AppContainer.Types
 
     build-depends:
         base >=4.6 && <4.8,
         aeson,
+        bytestring,
         containers,
         semver,
         uuid,
diff --git a/src/Data/AppContainer.hs b/src/Data/AppContainer.hs
new file mode 100644
--- /dev/null
+++ b/src/Data/AppContainer.hs
@@ -0,0 +1,34 @@
+{-# LANGUAGE RecordWildCards #-}
+
+module Data.AppContainer
+    ( verifyImageManifest
+    , verifyContainerRuntimeManifest
+    , buildImage
+    ) where
+
+
+import           Data.Aeson
+import qualified Data.ByteString.Lazy as LBS
+import           Data.AppContainer.Types
+
+
+
+verifyImageManifest :: String -> IO Bool
+verifyImageManifest path = do
+    c <- LBS.readFile path
+    return $ case eitherDecode c of
+        Left _ -> False
+        Right ImageManifest{..} -> True
+
+
+verifyContainerRuntimeManifest :: String -> IO Bool
+verifyContainerRuntimeManifest path = do
+    c <- LBS.readFile path
+    return $ case eitherDecode c of
+        Left _ -> False
+        Right ContainerRuntimeManifest{..} -> True
+
+
+buildImage :: String -> String -> IO ()
+buildImage path output = do
+    return ()
diff --git a/src/Data/AppContainer/Types.hs b/src/Data/AppContainer/Types.hs
--- a/src/Data/AppContainer/Types.hs
+++ b/src/Data/AppContainer/Types.hs
@@ -1,3 +1,5 @@
+{-# OPTIONS_GHC -fno-warn-orphans #-}
+
 {-# LANGUAGE OverloadedStrings #-}
 {-# LANGUAGE TemplateHaskell   #-}
 {-# LANGUAGE RecordWildCards   #-}
@@ -5,9 +7,16 @@
 module Data.AppContainer.Types
    ( ImageManifest(..)
    , ContainerRuntimeManifest(..)
-   , Image(..)
+
    , App(..)
+   , Dependency(..)
+   , EventHandler(..)
+   , Image(..)
    , Label(..)
+   , MountPoint(..)
+   , Port(..)
+   , Volume(..)
+
    ) where
 
 
@@ -15,7 +24,6 @@
 import           Control.Monad
 
 import           Data.Text (Text)
-import qualified Data.Text as T
 
 import           Data.Map (Map)
 import qualified Data.Map as M
