diff --git a/Binding/Libsass.hs b/Binding/Libsass.hs
deleted file mode 100644
--- a/Binding/Libsass.hs
+++ /dev/null
@@ -1,19 +0,0 @@
--- |
--- This is the main module of the library - it reexports rest of the library, so
--- you should only import this one.
-
-{-# LANGUAGE ForeignFunctionInterface #-}
-module Binding.Libsass
-  (
-    libsass_version
-  , module Libsass
-  ) where
-
-import           Binding.Libsass.Context   as Libsass
-import           Binding.Libsass.Functions as Libsass
-import           Binding.Libsass.Types     as Libsass
-import           Binding.Libsass.Wrappers  as Libsass
-import           Binding.Libsass.Values    as Libsass
-import           Foreign.C.String
-
-foreign import ccall unsafe "sass.h" libsass_version :: CString
diff --git a/Binding/Libsass/Context.hs b/Binding/Libsass/Context.hs
deleted file mode 100644
--- a/Binding/Libsass/Context.hs
+++ /dev/null
@@ -1,358 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface #-}
-module Binding.Libsass.Context where
-
-import           Binding.Libsass.Types
-import           Foreign
-import           Foreign.C.String
-import           Foreign.C.Types
-
-foreign import ccall unsafe "sass_context.h" sass_make_options
-    :: IO (Ptr SassOptions)
-
-foreign import ccall unsafe "sass_context.h" sass_make_file_context
-    :: CString
-    -> IO (Ptr SassFileContext)
-
--- | Creates and initializes a data context, ie. context that parses string
---   instead of a file.
---
---   WARNING! The string that this function takes is released by the libsass
---   during cleanup. You must not deallocate it.
-foreign import ccall unsafe "sass_context.h" sass_make_data_context
-    :: CString
-    -> IO (Ptr SassDataContext)
-
-foreign import ccall safe "sass_context.h" sass_compile_file_context
-    :: Ptr SassFileContext
-    -> IO CInt
-
-foreign import ccall safe "sass_context.h" sass_compile_data_context
-    :: Ptr SassDataContext
-    -> IO CInt
-
-foreign import ccall unsafe "sass_context.h" sass_make_file_compiler
-    :: Ptr SassFileContext
-    -> IO (Ptr SassCompiler)
-
-foreign import ccall unsafe "sass_context.h" sass_make_data_compiler
-    :: Ptr SassDataContext
-    -> IO (Ptr SassCompiler)
-
-foreign import ccall safe "sass_context.h" sass_compiler_parse
-    :: Ptr SassCompiler
-    -> IO CInt
-
-foreign import ccall safe "sass_context.h" sass_compiler_execute
-    :: Ptr SassCompiler
-    -> IO CInt
-
-foreign import ccall unsafe "sass_context.h" sass_delete_compiler
-    :: Ptr SassCompiler
-    -> IO ()
-
-foreign import ccall unsafe "sass_context.h" sass_delete_file_context
-    :: Ptr SassFileContext
-    -> IO ()
-
-foreign import ccall unsafe "sass_context.h" sass_delete_data_context
-    :: Ptr SassDataContext
-    -> IO ()
-
-foreign import ccall unsafe "sass_context.h" sass_file_context_get_context
-    :: Ptr SassFileContext
-    -> Ptr SassContext
-
-foreign import ccall unsafe "sass_context.h" sass_data_context_get_context
-    :: Ptr SassDataContext
-    -> Ptr SassContext
-
-foreign import ccall unsafe "sass_context.h" sass_context_get_options
-    :: Ptr SassContext
-    -> Ptr SassOptions
-
-foreign import ccall unsafe "sass_context.h" sass_file_context_get_options
-    :: Ptr SassFileContext
-    -> Ptr SassOptions
-
-foreign import ccall unsafe "sass_context.h" sass_data_context_get_options
-    :: Ptr SassDataContext
-    -> Ptr SassOptions
-
-foreign import ccall unsafe "sass_context.h" sass_file_context_set_options
-    :: Ptr SassFileContext
-    -> Ptr SassOptions
-    -> IO ()
-
-foreign import ccall unsafe "sass_context.h" sass_data_context_set_options
-    :: Ptr SassDataContext
-    -> Ptr SassOptions
-    -> IO ()
-
-foreign import ccall unsafe "sass_context.h" sass_option_get_precision
-    :: Ptr SassOptions
-    -> IO CInt
-
-foreign import ccall unsafe "sass_context.h" sass_option_get_output_style
-    :: Ptr SassOptions
-    -> IO CInt -- ^ Returns 'SassOutputStyle'
-
-foreign import ccall unsafe "sass_context.h" sass_option_get_source_comments
-    :: Ptr SassOptions
-    -> IO Bool
-
-foreign import ccall unsafe "sass_context.h" sass_option_get_source_map_embed
-    :: Ptr SassOptions
-    -> IO Bool
-
-foreign import ccall unsafe "sass_context.h" sass_option_get_source_map_contents
-    :: Ptr SassOptions
-    -> IO Bool
-
-foreign import ccall unsafe "sass_context.h" sass_option_get_omit_source_map_url
-    :: Ptr SassOptions
-    -> IO Bool
-
-foreign import ccall unsafe "sass_context.h" sass_option_get_is_indented_syntax_src
-    :: Ptr SassOptions
-    -> IO Bool
-
-foreign import ccall unsafe "sass_context.h" sass_option_get_indent
-    :: Ptr SassOptions
-    -> IO CString
-
-foreign import ccall unsafe "sass_context.h" sass_option_get_linefeed
-    :: Ptr SassOptions
-    -> IO CString
-
-foreign import ccall unsafe "sass_context.h" sass_option_get_input_path
-    :: Ptr SassOptions
-    -> IO CString
-
-foreign import ccall unsafe "sass_context.h" sass_option_get_output_path
-    :: Ptr SassOptions
-    -> IO CString
-
-foreign import ccall unsafe "sass_context.h" sass_option_get_plugin_path
-    :: Ptr SassOptions
-    -> IO CString
-
-foreign import ccall unsafe "sass_context.h" sass_option_get_include_path
-    :: Ptr SassOptions
-    -> IO CString
-
-foreign import ccall unsafe "sass_context.h" sass_option_get_source_map_file
-    :: Ptr SassOptions
-    -> IO CString
-
-foreign import ccall unsafe "sass_context.h" sass_option_get_source_map_root
-    :: Ptr SassOptions
-    -> IO CString
-
-foreign import ccall unsafe "sass_context.h" sass_option_get_c_headers
-     :: Ptr SassOptions
-     -> IO SassImporterList
-
-foreign import ccall unsafe "sass_context.h" sass_option_get_c_importers
-     :: Ptr SassOptions
-     -> IO SassImporterList
-
-foreign import ccall unsafe "sass_context.h" sass_option_get_c_functions
-     :: Ptr SassOptions
-     -> IO SassFunctionList
-
-foreign import ccall unsafe "sass_context.h" sass_option_set_precision
-    :: Ptr SassOptions
-    -> CInt
-    -> IO ()
-
-foreign import ccall unsafe "sass_context.h" sass_option_set_output_style
-    :: Ptr SassOptions
-    -> CInt -- ^ 'SassOutputStyle'
-    -> IO ()
-
-foreign import ccall unsafe "sass_context.h" sass_option_set_source_comments
-    :: Ptr SassOptions
-    -> Bool
-    -> IO ()
-
-foreign import ccall unsafe "sass_context.h" sass_option_set_source_map_embed
-    :: Ptr SassOptions
-    -> Bool
-    -> IO ()
-
-foreign import ccall unsafe "sass_context.h" sass_option_set_source_map_contents
-    :: Ptr SassOptions
-    -> Bool
-    -> IO ()
-
-foreign import ccall unsafe "sass_context.h" sass_option_set_omit_source_map_url
-    :: Ptr SassOptions
-    -> Bool
-    -> IO ()
-
-foreign import ccall unsafe "sass_context.h" sass_option_set_is_indented_syntax_src
-    :: Ptr SassOptions
-    -> Bool
-    -> IO ()
-
-foreign import ccall unsafe "sass_context.h" sass_option_set_indent
-    :: Ptr SassOptions
-    -> CString
-    -> IO ()
-
-foreign import ccall unsafe "sass_context.h" sass_option_set_linefeed
-    :: Ptr SassOptions
-    -> CString
-    -> IO ()
-
-foreign import ccall unsafe "sass_context.h" sass_option_set_input_path
-    :: Ptr SassOptions
-    -> CString
-    -> IO ()
-
-foreign import ccall unsafe "sass_context.h" sass_option_set_output_path
-    :: Ptr SassOptions
-    -> CString
-    -> IO ()
-
-foreign import ccall unsafe "sass_context.h" sass_option_set_plugin_path
-    :: Ptr SassOptions
-    -> CString
-    -> IO ()
-
-foreign import ccall unsafe "sass_context.h" sass_option_set_include_path
-    :: Ptr SassOptions
-    -> CString
-    -> IO ()
-
-foreign import ccall unsafe "sass_context.h" sass_option_set_source_map_file
-    :: Ptr SassOptions
-    -> CString
-    -> IO ()
-
-foreign import ccall unsafe "sass_context.h" sass_option_set_source_map_root
-    :: Ptr SassOptions
-    -> CString
-    -> IO ()
-
-foreign import ccall unsafe "sass_context.h" sass_option_set_c_headers
-    :: Ptr SassOptions
-    -> SassImporterList
-    -> IO ()
-
-foreign import ccall unsafe "sass_context.h" sass_option_set_c_importers
-    :: Ptr SassOptions
-    -> SassImporterList
-    -> IO ()
-
-foreign import ccall unsafe "sass_context.h" sass_option_set_c_functions
-    :: Ptr SassOptions
-    -> SassFunctionList
-    -> IO ()
-
-foreign import ccall unsafe "sass_context.h" sass_context_get_output_string
-    :: Ptr SassContext
-    -> IO CString
-
-foreign import ccall unsafe "sass_context.h" sass_context_get_error_status
-    :: Ptr SassContext
-    -> IO CInt
-
-foreign import ccall unsafe "sass_context.h" sass_context_get_error_json
-    :: Ptr SassContext
-    -> IO CString
-
-foreign import ccall unsafe "sass_context.h" sass_context_get_error_text
-    :: Ptr SassContext
-    -> IO CString
-
-foreign import ccall unsafe "sass_context.h" sass_context_get_error_message
-    :: Ptr SassContext
-    -> IO CString
-
-foreign import ccall unsafe "sass_context.h" sass_context_get_error_file
-    :: Ptr SassContext
-    -> IO CString
-
-foreign import ccall unsafe "sass_context.h" sass_context_get_error_src
-    :: Ptr SassContext
-    -> IO CString
-
-foreign import ccall unsafe "sass_context.h" sass_context_get_error_line
-    :: Ptr SassContext
-    -> IO CSize
-
-foreign import ccall unsafe "sass_context.h" sass_context_get_error_column
-    :: Ptr SassContext
-    -> IO CSize
-
-foreign import ccall unsafe "sass_context.h" sass_context_get_source_map_string
-    :: Ptr SassContext
-    -> IO CString
-
-foreign import ccall unsafe "sass_context.h" sass_context_get_included_files
-    :: Ptr SassContext
-    -> IO (Ptr CString)
-
-foreign import ccall unsafe "sass_context.h" sass_context_get_included_files_size
-    :: Ptr SassContext
-    -> IO CSize
-
-foreign import ccall unsafe "sass_context.h" sass_context_take_error_json
-    :: Ptr SassContext
-    -> IO CString
-
-foreign import ccall unsafe "sass_context.h" sass_context_take_error_text
-    :: Ptr SassContext
-    -> IO CString
-
-foreign import ccall unsafe "sass_context.h" sass_context_take_error_message
-    :: Ptr SassContext
-    -> IO CString
-
-foreign import ccall unsafe "sass_context.h" sass_context_take_error_file
-    :: Ptr SassContext
-    -> IO CString
-
-foreign import ccall unsafe "sass_context.h" sass_context_take_output_string
-    :: Ptr SassContext
-    -> IO CString
-
-foreign import ccall unsafe "sass_context.h" sass_context_take_source_map_string
-    :: Ptr SassContext
-    -> IO CString
-
-foreign import ccall unsafe "sass_context.h" sass_context_take_included_files
-    :: Ptr SassContext
-    -> IO (Ptr CString)
-
-foreign import ccall unsafe "sass_context.h" sass_compiler_get_state
-    :: Ptr SassCompiler
-    -> IO CInt -- ^ Retruns 'SassCompilerState'
-
-foreign import ccall unsafe "sass_context.h" sass_compiler_get_context
-    :: Ptr SassCompiler
-    -> IO (Ptr SassContext)
-
-foreign import ccall unsafe "sass_context.h" sass_compiler_get_import_stack_size
-    :: Ptr SassCompiler
-    -> IO CSize
-
-foreign import ccall unsafe "sass_context.h" sass_compiler_get_last_import
-    :: Ptr SassCompiler
-    -> IO SassImportEntry
-
-foreign import ccall unsafe "sass_context.h" sass_compiler_get_import_entry
-    :: Ptr SassCompiler
-    -> CSize
-    -> IO SassImportEntry
-
-foreign import ccall unsafe "sass_context.h" sass_option_push_plugin_path
-    :: Ptr SassOptions
-    -> CString
-    -> IO ()
-
-foreign import ccall unsafe "sass_context.h" sass_option_push_include_path
-    :: Ptr SassOptions
-    -> CString
-    -> IO ()
diff --git a/Binding/Libsass/Functions.hs b/Binding/Libsass/Functions.hs
deleted file mode 100644
--- a/Binding/Libsass/Functions.hs
+++ /dev/null
@@ -1,156 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface #-}
-module Binding.Libsass.Functions where
-
-import           Binding.Libsass.Types
-import           Foreign
-import           Foreign.C
-
-foreign import ccall unsafe "sass_function.h" sass_make_importer_list
-    :: CSize
-    -> IO SassImporterList
-
--- Libsass lacks implementation of these functions.
-
--- foreign import ccall unsafe "sass_function.h" sass_importer_get_list_entry
---     :: SassImporterList
---     -> CSize
---     -> IO SassImporterEntry
-
--- foreign import ccall unsafe "sass_function.h" sass_importer_set_list_entry
---     :: SassImporterList
---     -> CSize
---     -> SassImporterEntry
---     -> IO ()
-
-foreign import ccall unsafe "sass_function.h" sass_make_importer
-    :: SassImporterFn
-    -> CDouble
-    -> Ptr ()
-    -> IO SassImporterEntry
-
-foreign import ccall unsafe "sass_function.h" sass_importer_get_function
-    :: SassImporterEntry
-    -> IO SassImporterFn
-
-foreign import ccall unsafe "sass_function.h" sass_importer_get_priority
-    :: SassImporterEntry
-    -> IO CDouble
-foreign import ccall unsafe "sass_function.h" sass_importer_get_cookie
-    :: SassImporterEntry
-    -> IO (Ptr ())
-
-foreign import ccall unsafe "sass_function.h" sass_delete_importer
-    :: SassImporterEntry
-    -> IO ()
-
-foreign import ccall unsafe "sass_function.h" sass_make_import_list
-    :: CSize
-    -> IO SassImportList
-
-foreign import ccall unsafe "sass_function.h" sass_make_import_entry
-    :: CString
-    -> CString
-    -> CString
-    -> IO SassImportEntry
-
-foreign import ccall unsafe "sass_function.h" sass_make_import
-    :: CString
-    -> CString
-    -> CString
-    -> CString
-    -> IO SassImportEntry
-
-foreign import ccall unsafe "sass_function.h" sass_import_set_error
-    :: SassImportEntry
-    -> CString
-    -> CSize
-    -> CSize
-    -> IO SassImportEntry
-
-foreign import ccall unsafe "sass_function.h" sass_import_set_list_entry
-    :: SassImportList
-    -> CSize
-    -> SassImportEntry
-    -> IO ()
-
-foreign import ccall unsafe "sass_function.h" sass_import_get_list_entry
-    :: SassImportList
-    -> CSize
-    -> IO SassImportEntry
-
-foreign import ccall unsafe "sass_function.h" sass_import_get_path
-    :: SassImportEntry
-    -> IO CString
-
-foreign import ccall unsafe "sass_function.h" sass_import_get_base
-    :: SassImportEntry
-    -> IO CString
-
-foreign import ccall unsafe "sass_function.h" sass_import_get_source
-    :: SassImportEntry
-    -> IO CString
-
-foreign import ccall unsafe "sass_function.h" sass_import_get_srcmap
-    :: SassImportEntry
-    -> IO CString
-
-foreign import ccall unsafe "sass_function.h" sass_import_take_source
-    :: SassImportEntry
-    -> IO CString
-
-foreign import ccall unsafe "sass_function.h" sass_import_take_srcmap
-    :: SassImportEntry
-    -> IO CString
-
-foreign import ccall unsafe "sass_function.h" sass_import_get_error_line
-    :: SassImportEntry
-    -> IO CSize
-
-foreign import ccall unsafe "sass_function.h" sass_import_get_error_column
-    :: SassImportEntry
-    -> IO CSize
-
-foreign import ccall unsafe "sass_function.h" sass_import_get_error_message
-    :: SassImportEntry
-    -> IO CString
-
-foreign import ccall unsafe "sass_function.h" sass_delete_import_list
-    :: SassImportList
-    -> IO ()
-
-foreign import ccall unsafe "sass_function.h" sass_delete_import
-    :: SassImportEntry
-    -> IO ()
-
-foreign import ccall unsafe "sass_function.h" sass_make_function_list
-    :: CSize
-    -> IO SassFunctionList
-
-foreign import ccall unsafe "sass_function.h" sass_make_function
-    :: CString
-    -> SassFunctionFn
-    -> Ptr ()
-    -> IO SassFunctionEntry
-
-foreign import ccall unsafe "sass_function.h" sass_function_get_list_entry
-    :: SassFunctionList
-    -> CSize
-    -> IO SassFunctionEntry
-
-foreign import ccall unsafe "sass_function.h" sass_function_set_list_entry
-    :: SassFunctionList
-    -> CSize
-    -> SassFunctionEntry
-    -> IO ()
-
-foreign import ccall unsafe "sass_function.h" sass_function_get_signature
-    :: SassFunctionEntry
-    -> IO CString
-
-foreign import ccall unsafe "sass_function.h" sass_function_get_function
-    :: SassFunctionEntry
-    -> IO SassFunctionFn
-
-foreign import ccall unsafe "sass_function.h" sass_function_get_cookie
-    :: SassFunctionEntry
-    -> IO (Ptr ())
diff --git a/Binding/Libsass/Types.hs b/Binding/Libsass/Types.hs
deleted file mode 100644
--- a/Binding/Libsass/Types.hs
+++ /dev/null
@@ -1,127 +0,0 @@
-{-# LANGUAGE EmptyDataDecls #-}
-module Binding.Libsass.Types where
-
-import           Foreign
-import           Foreign.C.String
-
--- From sass.h
-
--- | Defines output style of compiled CSS.
-data SassOutputStyle = SassStyleNested
-                     | SassStyleExpanded
-                     | SassStyleCompact
-                     | SassStyleCompressed
-                     deriving (Eq, Show)
-
-instance Enum SassOutputStyle where
-    fromEnum SassStyleNested     = 0
-    fromEnum SassStyleExpanded   = 1
-    fromEnum SassStyleCompact    = 2
-    fromEnum SassStyleCompressed = 3
-
-    toEnum 0 = SassStyleNested
-    toEnum 1 = SassStyleExpanded
-    toEnum 2 = SassStyleCompact
-    toEnum 3 = SassStyleCompressed
-    toEnum u = error ("SassOutputStyle.toEnum: Cannot match " ++ show u)
-
--- From sass_context.h
-
-data SassCompiler
-data SassOptions
-data SassContext
-data SassFileContext
-data SassDataContext
-
-data SassCompilerState = SassCompilerCreated
-                       | SassCompilerParsed
-                       | SassCompilerExecuted
-                       deriving (Show, Eq)
-
-instance Enum SassCompilerState where
-    fromEnum SassCompilerCreated  = 0
-    fromEnum SassCompilerParsed   = 1
-    fromEnum SassCompilerExecuted = 2
-
-    toEnum 0 = SassCompilerCreated
-    toEnum 1 = SassCompilerParsed
-    toEnum 2 = SassCompilerExecuted
-    toEnum u = error ("SassCompilerState.toEnum: Cannot match " ++ show u)
-
--- From sass_functions.h
-
-data SassImport
-data SassImporter
-data SassFunction
-
-type SassImportEntry = Ptr SassImport
-type SassImportList = Ptr (Ptr SassImport)
-type SassImporterEntry = Ptr SassImporter
-type SassImporterList = Ptr (Ptr SassImporter)
-
-type SassImporterFnType = 
-     CString
-  -> SassImporterEntry
-  -> Ptr SassCompiler
-  -> IO SassImportList
-type SassImporterFn = FunPtr SassImporterFnType
-
-type SassFunctionEntry = Ptr SassFunction
-type SassFunctionList = Ptr (Ptr SassFunction)
-
-type SassFunctionFnType =
-     Ptr SassValue
-  -> SassFunctionEntry
-  -> Ptr SassOptions
-  -> IO (Ptr SassValue)
-type SassFunctionFn = FunPtr SassFunctionFnType
-
--- From sass_values.h
-
-data SassValue
-
-data SassTag = SassBoolean
-             | SassNumber
-             | SassColor
-             | SassString
-             | SassList
-             | SassMap
-             | SassNull
-             | SassError
-             | SassWarning
-             deriving (Eq, Show)
-
-instance Enum SassTag where
-    fromEnum SassBoolean = 0
-    fromEnum SassNumber  = 1
-    fromEnum SassColor   = 2
-    fromEnum SassString  = 3
-    fromEnum SassList    = 4
-    fromEnum SassMap     = 5
-    fromEnum SassNull    = 6
-    fromEnum SassError   = 7
-    fromEnum SassWarning = 8
-
-    toEnum 0 = SassBoolean
-    toEnum 1 = SassNumber
-    toEnum 2 = SassColor
-    toEnum 3 = SassString
-    toEnum 4 = SassList
-    toEnum 5 = SassMap
-    toEnum 6 = SassNull
-    toEnum 7 = SassError
-    toEnum 8 = SassWarning
-    toEnum u = error ("SassTag.toEnum: Cannot match " ++ show u)
-
--- ^ Separator used in Sass lists.
-data SassSeparator = SassSeparatorComma
-                   | SassSeparatorSpace
-                   deriving (Eq, Show)
-
-instance Enum SassSeparator where
-    fromEnum SassSeparatorComma = 0
-    fromEnum SassSeparatorSpace  = 1
-
-    toEnum 0 = SassSeparatorComma
-    toEnum 1 = SassSeparatorSpace
-    toEnum u = error ("SassSeparator.toEnum: Cannot match " ++ show u)
diff --git a/Binding/Libsass/Values.hs b/Binding/Libsass/Values.hs
deleted file mode 100644
--- a/Binding/Libsass/Values.hs
+++ /dev/null
@@ -1,234 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface #-}
-module Binding.Libsass.Values where
-
-import           Binding.Libsass.Types
-import           Foreign
-import           Foreign.C
-
-foreign import ccall unsafe "sass_values.h" sass_value_get_tag
-    :: Ptr SassValue
-    -> IO CInt -- ^ Returns 'SassTag'
-
-foreign import ccall unsafe "sass_values.h" sass_value_is_null
-    :: Ptr SassValue
-    -> IO Bool
-
-foreign import ccall unsafe "sass_values.h" sass_value_is_number
-    :: Ptr SassValue
-    -> IO Bool
-
-foreign import ccall unsafe "sass_values.h" sass_value_is_string
-    :: Ptr SassValue
-    -> IO Bool
-
-foreign import ccall unsafe "sass_values.h" sass_value_is_boolean
-    :: Ptr SassValue
-    -> IO Bool
-
-foreign import ccall unsafe "sass_values.h" sass_value_is_color
-    :: Ptr SassValue
-    -> IO Bool
-
-foreign import ccall unsafe "sass_values.h" sass_value_is_list
-    :: Ptr SassValue
-    -> IO Bool
-
-foreign import ccall unsafe "sass_values.h" sass_value_is_map
-    :: Ptr SassValue
-    -> IO Bool
-
-foreign import ccall unsafe "sass_values.h" sass_value_is_error
-    :: Ptr SassValue
-    -> IO Bool
-
-foreign import ccall unsafe "sass_values.h" sass_value_is_warning
-    :: Ptr SassValue
-    -> IO Bool
-
-foreign import ccall unsafe "sass_values.h" sass_number_get_value
-    :: Ptr SassValue
-    -> IO CDouble
-
-foreign import ccall unsafe "sass_values.h" sass_number_set_value
-    :: Ptr SassValue
-    -> CDouble
-    -> IO ()
-
-foreign import ccall unsafe "sass_values.h" sass_number_get_unit
-    :: Ptr SassValue
-    -> IO CString
-
-foreign import ccall unsafe "sass_values.h" sass_number_set_unit
-    :: Ptr SassValue
-    -> CString
-    -> IO ()
-
-foreign import ccall unsafe "sass_values.h" sass_string_get_value
-    :: Ptr SassValue
-    -> IO CString
-
-foreign import ccall unsafe "sass_values.h" sass_string_set_value
-    :: Ptr SassValue
-    -> CString
-    -> IO ()
-
-foreign import ccall unsafe "sass_values.h" sass_boolean_get_value
-    :: Ptr SassValue
-    -> IO Bool
-
-foreign import ccall unsafe "sass_values.h" sass_boolean_set_value
-    :: Ptr SassValue
-    -> Bool
-    -> IO ()
-
-foreign import ccall unsafe "sass_values.h" sass_color_get_r
-    :: Ptr SassValue
-    -> IO CDouble
-
-foreign import ccall unsafe "sass_values.h" sass_color_set_r
-    :: Ptr SassValue
-    -> CDouble
-    -> IO ()
-
-foreign import ccall unsafe "sass_values.h" sass_color_get_g
-    :: Ptr SassValue
-    -> IO CDouble
-
-foreign import ccall unsafe "sass_values.h" sass_color_set_g
-    :: Ptr SassValue
-    -> CDouble
-    -> IO ()
-
-foreign import ccall unsafe "sass_values.h" sass_color_get_b
-    :: Ptr SassValue
-    -> IO CDouble
-
-foreign import ccall unsafe "sass_values.h" sass_color_set_b
-    :: Ptr SassValue
-    -> CDouble
-    -> IO ()
-
-foreign import ccall unsafe "sass_values.h" sass_color_get_a
-    :: Ptr SassValue
-    -> IO CDouble
-
-foreign import ccall unsafe "sass_values.h" sass_color_set_a
-    :: Ptr SassValue
-    -> CDouble
-    -> IO ()
-
-foreign import ccall unsafe "sass_values.h" sass_list_get_length
-    :: Ptr SassValue
-    -> IO CSize
-
-foreign import ccall unsafe "sass_values.h" sass_list_get_separator
-    :: Ptr SassValue
-    -> IO CInt -- ^ Retrurns 'SassSeparator'
-
-foreign import ccall unsafe "sass_values.h" sass_list_set_separator
-    :: Ptr SassValue
-    -> CInt -- ^ 'SassSeparator'
-    -> IO ()
-
-foreign import ccall unsafe "sass_values.h" sass_list_get_value
-    :: Ptr SassValue
-    -> CSize
-    -> IO (Ptr SassValue)
-
-foreign import ccall unsafe "sass_values.h" sass_list_set_value
-    :: Ptr SassValue
-    -> CSize
-    -> Ptr SassValue
-    -> IO ()
-
-foreign import ccall unsafe "sass_values.h" sass_map_get_length
-    :: Ptr SassValue
-    -> IO CSize
-
-foreign import ccall unsafe "sass_values.h" sass_map_get_key
-    :: Ptr SassValue
-    -> CSize
-    -> IO (Ptr SassValue)
-
-foreign import ccall unsafe "sass_values.h" sass_map_set_key
-    :: Ptr SassValue
-    -> CSize
-    -> Ptr SassValue
-    -> IO ()
-
-foreign import ccall unsafe "sass_values.h" sass_map_get_value
-    :: Ptr SassValue
-    -> CSize
-    -> IO (Ptr SassValue)
-
-foreign import ccall unsafe "sass_values.h" sass_map_set_value
-    :: Ptr SassValue
-    -> CSize
-    -> Ptr SassValue
-    -> IO ()
-
-foreign import ccall unsafe "sass_values.h" sass_error_get_message
-    :: Ptr SassValue
-    -> IO CString
-
-foreign import ccall unsafe "sass_values.h" sass_error_set_message
-    :: Ptr SassValue
-    -> CString
-    -> IO ()
-
-foreign import ccall unsafe "sass_values.h" sass_warning_get_message
-    :: Ptr SassValue
-    -> IO CString
-
-foreign import ccall unsafe "sass_values.h" sass_warning_set_message
-    :: Ptr SassValue
-    -> CString
-    -> IO ()
-
-foreign import ccall unsafe "sass_values.h" sass_make_null
-    :: IO (Ptr SassValue)
-
-foreign import ccall unsafe "sass_values.h" sass_make_boolean
-    :: Bool
-    -> IO (Ptr SassValue)
-
-foreign import ccall unsafe "sass_values.h" sass_make_string
-    :: CString
-    -> IO (Ptr SassValue)
-
-foreign import ccall unsafe "sass_values.h" sass_make_number
-    :: CDouble
-    -> CString
-    -> IO (Ptr SassValue)
-
-foreign import ccall unsafe "sass_values.h" sass_make_color
-    :: CDouble
-    -> CDouble
-    -> CDouble
-    -> CDouble
-    -> IO (Ptr SassValue)
-
-foreign import ccall unsafe "sass_values.h" sass_make_list
-    :: CSize
-    -> CInt -- ^ 'SassSeparator'
-    -> IO (Ptr SassValue)
-
-foreign import ccall unsafe "sass_values.h" sass_make_map
-    :: CSize
-    -> IO (Ptr SassValue)
-
-foreign import ccall unsafe "sass_values.h" sass_make_error
-    :: CString
-    -> IO (Ptr SassValue)
-
-foreign import ccall unsafe "sass_values.h" sass_make_warning
-    :: CString
-    -> IO (Ptr SassValue)
-
-foreign import ccall unsafe "sass_values.h" sass_delete_value
-    :: Ptr SassValue
-    -> IO ()
-
-foreign import ccall unsafe "sass_values.h" sass_clone_value
-    :: Ptr SassValue
-    -> IO (Ptr SassValue)
diff --git a/Binding/Libsass/Wrappers.hs b/Binding/Libsass/Wrappers.hs
deleted file mode 100644
--- a/Binding/Libsass/Wrappers.hs
+++ /dev/null
@@ -1,34 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface #-}
-module Binding.Libsass.Wrappers where
-
-import           Binding.Libsass.Types
-import           Foreign
-
-foreign import ccall safe "wrapper" mkSassImporterFn
-    :: SassImporterFnType
-    -> IO SassImporterFn
-
-foreign import ccall safe "wrapper" mkSassFunctionFn
-    :: SassFunctionFnType
-    -> IO SassFunctionFn
-
-foreign import ccall "sass_context.h &sass_delete_compiler"
-    p_sass_delete_compiler :: FunPtr (Ptr SassCompiler -> IO ())
-
-foreign import ccall "sass_context.h &sass_delete_file_context"
-    p_sass_delete_file_context :: FunPtr (Ptr SassFileContext -> IO ())
-
-foreign import ccall "sass_context.h &sass_delete_data_context"
-    p_sass_delete_data_context :: FunPtr (Ptr SassDataContext -> IO ())
-
-foreign import ccall "sass_function.h &sass_delete_import_list"
-    p_sass_delete_import_list :: FunPtr (SassImportList -> IO ())
-
-foreign import ccall "sass_function.h &sass_delete_import"
-    p_sass_delete_import :: FunPtr (SassImportEntry -> IO ())
-
-foreign import ccall "sass_function.h &sass_delete_importer"
-    p_sass_delete_importer :: FunPtr (SassImporterEntry -> IO ())
-
-foreign import ccall  "sass_values.h &sass_delete_value"
-    p_sass_delete_value :: FunPtr (Ptr SassValue -> IO ())
diff --git a/Bindings/Libsass.hs b/Bindings/Libsass.hs
new file mode 100644
--- /dev/null
+++ b/Bindings/Libsass.hs
@@ -0,0 +1,19 @@
+-- |
+-- This is the main module of the library - it reexports rest of the library, so
+-- you should only import this one.
+
+{-# LANGUAGE ForeignFunctionInterface #-}
+module Bindings.Libsass
+  (
+    libsass_version
+  , module Libsass
+  ) where
+
+import           Bindings.Libsass.Context   as Libsass
+import           Bindings.Libsass.Functions as Libsass
+import           Bindings.Libsass.Types     as Libsass
+import           Bindings.Libsass.Wrappers  as Libsass
+import           Bindings.Libsass.Values    as Libsass
+import           Foreign.C.String
+
+foreign import ccall unsafe "sass.h" libsass_version :: CString
diff --git a/Bindings/Libsass/Context.hs b/Bindings/Libsass/Context.hs
new file mode 100644
--- /dev/null
+++ b/Bindings/Libsass/Context.hs
@@ -0,0 +1,358 @@
+{-# LANGUAGE ForeignFunctionInterface #-}
+module Bindings.Libsass.Context where
+
+import           Bindings.Libsass.Types
+import           Foreign
+import           Foreign.C.String
+import           Foreign.C.Types
+
+foreign import ccall unsafe "sass_context.h" sass_make_options
+    :: IO (Ptr SassOptions)
+
+foreign import ccall unsafe "sass_context.h" sass_make_file_context
+    :: CString
+    -> IO (Ptr SassFileContext)
+
+-- | Creates and initializes a data context, ie. context that parses string
+--   instead of a file.
+--
+--   WARNING! The string that this function takes is released by the libsass
+--   during cleanup. You must not deallocate it.
+foreign import ccall unsafe "sass_context.h" sass_make_data_context
+    :: CString
+    -> IO (Ptr SassDataContext)
+
+foreign import ccall safe "sass_context.h" sass_compile_file_context
+    :: Ptr SassFileContext
+    -> IO CInt
+
+foreign import ccall safe "sass_context.h" sass_compile_data_context
+    :: Ptr SassDataContext
+    -> IO CInt
+
+foreign import ccall unsafe "sass_context.h" sass_make_file_compiler
+    :: Ptr SassFileContext
+    -> IO (Ptr SassCompiler)
+
+foreign import ccall unsafe "sass_context.h" sass_make_data_compiler
+    :: Ptr SassDataContext
+    -> IO (Ptr SassCompiler)
+
+foreign import ccall safe "sass_context.h" sass_compiler_parse
+    :: Ptr SassCompiler
+    -> IO CInt
+
+foreign import ccall safe "sass_context.h" sass_compiler_execute
+    :: Ptr SassCompiler
+    -> IO CInt
+
+foreign import ccall unsafe "sass_context.h" sass_delete_compiler
+    :: Ptr SassCompiler
+    -> IO ()
+
+foreign import ccall unsafe "sass_context.h" sass_delete_file_context
+    :: Ptr SassFileContext
+    -> IO ()
+
+foreign import ccall unsafe "sass_context.h" sass_delete_data_context
+    :: Ptr SassDataContext
+    -> IO ()
+
+foreign import ccall unsafe "sass_context.h" sass_file_context_get_context
+    :: Ptr SassFileContext
+    -> Ptr SassContext
+
+foreign import ccall unsafe "sass_context.h" sass_data_context_get_context
+    :: Ptr SassDataContext
+    -> Ptr SassContext
+
+foreign import ccall unsafe "sass_context.h" sass_context_get_options
+    :: Ptr SassContext
+    -> Ptr SassOptions
+
+foreign import ccall unsafe "sass_context.h" sass_file_context_get_options
+    :: Ptr SassFileContext
+    -> Ptr SassOptions
+
+foreign import ccall unsafe "sass_context.h" sass_data_context_get_options
+    :: Ptr SassDataContext
+    -> Ptr SassOptions
+
+foreign import ccall unsafe "sass_context.h" sass_file_context_set_options
+    :: Ptr SassFileContext
+    -> Ptr SassOptions
+    -> IO ()
+
+foreign import ccall unsafe "sass_context.h" sass_data_context_set_options
+    :: Ptr SassDataContext
+    -> Ptr SassOptions
+    -> IO ()
+
+foreign import ccall unsafe "sass_context.h" sass_option_get_precision
+    :: Ptr SassOptions
+    -> IO CInt
+
+foreign import ccall unsafe "sass_context.h" sass_option_get_output_style
+    :: Ptr SassOptions
+    -> IO CInt -- ^ Returns 'SassOutputStyle'
+
+foreign import ccall unsafe "sass_context.h" sass_option_get_source_comments
+    :: Ptr SassOptions
+    -> IO Bool
+
+foreign import ccall unsafe "sass_context.h" sass_option_get_source_map_embed
+    :: Ptr SassOptions
+    -> IO Bool
+
+foreign import ccall unsafe "sass_context.h" sass_option_get_source_map_contents
+    :: Ptr SassOptions
+    -> IO Bool
+
+foreign import ccall unsafe "sass_context.h" sass_option_get_omit_source_map_url
+    :: Ptr SassOptions
+    -> IO Bool
+
+foreign import ccall unsafe "sass_context.h" sass_option_get_is_indented_syntax_src
+    :: Ptr SassOptions
+    -> IO Bool
+
+foreign import ccall unsafe "sass_context.h" sass_option_get_indent
+    :: Ptr SassOptions
+    -> IO CString
+
+foreign import ccall unsafe "sass_context.h" sass_option_get_linefeed
+    :: Ptr SassOptions
+    -> IO CString
+
+foreign import ccall unsafe "sass_context.h" sass_option_get_input_path
+    :: Ptr SassOptions
+    -> IO CString
+
+foreign import ccall unsafe "sass_context.h" sass_option_get_output_path
+    :: Ptr SassOptions
+    -> IO CString
+
+foreign import ccall unsafe "sass_context.h" sass_option_get_plugin_path
+    :: Ptr SassOptions
+    -> IO CString
+
+foreign import ccall unsafe "sass_context.h" sass_option_get_include_path
+    :: Ptr SassOptions
+    -> IO CString
+
+foreign import ccall unsafe "sass_context.h" sass_option_get_source_map_file
+    :: Ptr SassOptions
+    -> IO CString
+
+foreign import ccall unsafe "sass_context.h" sass_option_get_source_map_root
+    :: Ptr SassOptions
+    -> IO CString
+
+foreign import ccall unsafe "sass_context.h" sass_option_get_c_headers
+     :: Ptr SassOptions
+     -> IO SassImporterList
+
+foreign import ccall unsafe "sass_context.h" sass_option_get_c_importers
+     :: Ptr SassOptions
+     -> IO SassImporterList
+
+foreign import ccall unsafe "sass_context.h" sass_option_get_c_functions
+     :: Ptr SassOptions
+     -> IO SassFunctionList
+
+foreign import ccall unsafe "sass_context.h" sass_option_set_precision
+    :: Ptr SassOptions
+    -> CInt
+    -> IO ()
+
+foreign import ccall unsafe "sass_context.h" sass_option_set_output_style
+    :: Ptr SassOptions
+    -> CInt -- ^ 'SassOutputStyle'
+    -> IO ()
+
+foreign import ccall unsafe "sass_context.h" sass_option_set_source_comments
+    :: Ptr SassOptions
+    -> Bool
+    -> IO ()
+
+foreign import ccall unsafe "sass_context.h" sass_option_set_source_map_embed
+    :: Ptr SassOptions
+    -> Bool
+    -> IO ()
+
+foreign import ccall unsafe "sass_context.h" sass_option_set_source_map_contents
+    :: Ptr SassOptions
+    -> Bool
+    -> IO ()
+
+foreign import ccall unsafe "sass_context.h" sass_option_set_omit_source_map_url
+    :: Ptr SassOptions
+    -> Bool
+    -> IO ()
+
+foreign import ccall unsafe "sass_context.h" sass_option_set_is_indented_syntax_src
+    :: Ptr SassOptions
+    -> Bool
+    -> IO ()
+
+foreign import ccall unsafe "sass_context.h" sass_option_set_indent
+    :: Ptr SassOptions
+    -> CString
+    -> IO ()
+
+foreign import ccall unsafe "sass_context.h" sass_option_set_linefeed
+    :: Ptr SassOptions
+    -> CString
+    -> IO ()
+
+foreign import ccall unsafe "sass_context.h" sass_option_set_input_path
+    :: Ptr SassOptions
+    -> CString
+    -> IO ()
+
+foreign import ccall unsafe "sass_context.h" sass_option_set_output_path
+    :: Ptr SassOptions
+    -> CString
+    -> IO ()
+
+foreign import ccall unsafe "sass_context.h" sass_option_set_plugin_path
+    :: Ptr SassOptions
+    -> CString
+    -> IO ()
+
+foreign import ccall unsafe "sass_context.h" sass_option_set_include_path
+    :: Ptr SassOptions
+    -> CString
+    -> IO ()
+
+foreign import ccall unsafe "sass_context.h" sass_option_set_source_map_file
+    :: Ptr SassOptions
+    -> CString
+    -> IO ()
+
+foreign import ccall unsafe "sass_context.h" sass_option_set_source_map_root
+    :: Ptr SassOptions
+    -> CString
+    -> IO ()
+
+foreign import ccall unsafe "sass_context.h" sass_option_set_c_headers
+    :: Ptr SassOptions
+    -> SassImporterList
+    -> IO ()
+
+foreign import ccall unsafe "sass_context.h" sass_option_set_c_importers
+    :: Ptr SassOptions
+    -> SassImporterList
+    -> IO ()
+
+foreign import ccall unsafe "sass_context.h" sass_option_set_c_functions
+    :: Ptr SassOptions
+    -> SassFunctionList
+    -> IO ()
+
+foreign import ccall unsafe "sass_context.h" sass_context_get_output_string
+    :: Ptr SassContext
+    -> IO CString
+
+foreign import ccall unsafe "sass_context.h" sass_context_get_error_status
+    :: Ptr SassContext
+    -> IO CInt
+
+foreign import ccall unsafe "sass_context.h" sass_context_get_error_json
+    :: Ptr SassContext
+    -> IO CString
+
+foreign import ccall unsafe "sass_context.h" sass_context_get_error_text
+    :: Ptr SassContext
+    -> IO CString
+
+foreign import ccall unsafe "sass_context.h" sass_context_get_error_message
+    :: Ptr SassContext
+    -> IO CString
+
+foreign import ccall unsafe "sass_context.h" sass_context_get_error_file
+    :: Ptr SassContext
+    -> IO CString
+
+foreign import ccall unsafe "sass_context.h" sass_context_get_error_src
+    :: Ptr SassContext
+    -> IO CString
+
+foreign import ccall unsafe "sass_context.h" sass_context_get_error_line
+    :: Ptr SassContext
+    -> IO CSize
+
+foreign import ccall unsafe "sass_context.h" sass_context_get_error_column
+    :: Ptr SassContext
+    -> IO CSize
+
+foreign import ccall unsafe "sass_context.h" sass_context_get_source_map_string
+    :: Ptr SassContext
+    -> IO CString
+
+foreign import ccall unsafe "sass_context.h" sass_context_get_included_files
+    :: Ptr SassContext
+    -> IO (Ptr CString)
+
+foreign import ccall unsafe "sass_context.h" sass_context_get_included_files_size
+    :: Ptr SassContext
+    -> IO CSize
+
+foreign import ccall unsafe "sass_context.h" sass_context_take_error_json
+    :: Ptr SassContext
+    -> IO CString
+
+foreign import ccall unsafe "sass_context.h" sass_context_take_error_text
+    :: Ptr SassContext
+    -> IO CString
+
+foreign import ccall unsafe "sass_context.h" sass_context_take_error_message
+    :: Ptr SassContext
+    -> IO CString
+
+foreign import ccall unsafe "sass_context.h" sass_context_take_error_file
+    :: Ptr SassContext
+    -> IO CString
+
+foreign import ccall unsafe "sass_context.h" sass_context_take_output_string
+    :: Ptr SassContext
+    -> IO CString
+
+foreign import ccall unsafe "sass_context.h" sass_context_take_source_map_string
+    :: Ptr SassContext
+    -> IO CString
+
+foreign import ccall unsafe "sass_context.h" sass_context_take_included_files
+    :: Ptr SassContext
+    -> IO (Ptr CString)
+
+foreign import ccall unsafe "sass_context.h" sass_compiler_get_state
+    :: Ptr SassCompiler
+    -> IO CInt -- ^ Retruns 'SassCompilerState'
+
+foreign import ccall unsafe "sass_context.h" sass_compiler_get_context
+    :: Ptr SassCompiler
+    -> IO (Ptr SassContext)
+
+foreign import ccall unsafe "sass_context.h" sass_compiler_get_import_stack_size
+    :: Ptr SassCompiler
+    -> IO CSize
+
+foreign import ccall unsafe "sass_context.h" sass_compiler_get_last_import
+    :: Ptr SassCompiler
+    -> IO SassImportEntry
+
+foreign import ccall unsafe "sass_context.h" sass_compiler_get_import_entry
+    :: Ptr SassCompiler
+    -> CSize
+    -> IO SassImportEntry
+
+foreign import ccall unsafe "sass_context.h" sass_option_push_plugin_path
+    :: Ptr SassOptions
+    -> CString
+    -> IO ()
+
+foreign import ccall unsafe "sass_context.h" sass_option_push_include_path
+    :: Ptr SassOptions
+    -> CString
+    -> IO ()
diff --git a/Bindings/Libsass/Functions.hs b/Bindings/Libsass/Functions.hs
new file mode 100644
--- /dev/null
+++ b/Bindings/Libsass/Functions.hs
@@ -0,0 +1,156 @@
+{-# LANGUAGE ForeignFunctionInterface #-}
+module Bindings.Libsass.Functions where
+
+import           Bindings.Libsass.Types
+import           Foreign
+import           Foreign.C
+
+foreign import ccall unsafe "sass_function.h" sass_make_importer_list
+    :: CSize
+    -> IO SassImporterList
+
+-- Libsass lacks implementation of these functions.
+
+-- foreign import ccall unsafe "sass_function.h" sass_importer_get_list_entry
+--     :: SassImporterList
+--     -> CSize
+--     -> IO SassImporterEntry
+
+-- foreign import ccall unsafe "sass_function.h" sass_importer_set_list_entry
+--     :: SassImporterList
+--     -> CSize
+--     -> SassImporterEntry
+--     -> IO ()
+
+foreign import ccall unsafe "sass_function.h" sass_make_importer
+    :: SassImporterFn
+    -> CDouble
+    -> Ptr ()
+    -> IO SassImporterEntry
+
+foreign import ccall unsafe "sass_function.h" sass_importer_get_function
+    :: SassImporterEntry
+    -> IO SassImporterFn
+
+foreign import ccall unsafe "sass_function.h" sass_importer_get_priority
+    :: SassImporterEntry
+    -> IO CDouble
+foreign import ccall unsafe "sass_function.h" sass_importer_get_cookie
+    :: SassImporterEntry
+    -> IO (Ptr ())
+
+foreign import ccall unsafe "sass_function.h" sass_delete_importer
+    :: SassImporterEntry
+    -> IO ()
+
+foreign import ccall unsafe "sass_function.h" sass_make_import_list
+    :: CSize
+    -> IO SassImportList
+
+foreign import ccall unsafe "sass_function.h" sass_make_import_entry
+    :: CString
+    -> CString
+    -> CString
+    -> IO SassImportEntry
+
+foreign import ccall unsafe "sass_function.h" sass_make_import
+    :: CString
+    -> CString
+    -> CString
+    -> CString
+    -> IO SassImportEntry
+
+foreign import ccall unsafe "sass_function.h" sass_import_set_error
+    :: SassImportEntry
+    -> CString
+    -> CSize
+    -> CSize
+    -> IO SassImportEntry
+
+foreign import ccall unsafe "sass_function.h" sass_import_set_list_entry
+    :: SassImportList
+    -> CSize
+    -> SassImportEntry
+    -> IO ()
+
+foreign import ccall unsafe "sass_function.h" sass_import_get_list_entry
+    :: SassImportList
+    -> CSize
+    -> IO SassImportEntry
+
+foreign import ccall unsafe "sass_function.h" sass_import_get_path
+    :: SassImportEntry
+    -> IO CString
+
+foreign import ccall unsafe "sass_function.h" sass_import_get_base
+    :: SassImportEntry
+    -> IO CString
+
+foreign import ccall unsafe "sass_function.h" sass_import_get_source
+    :: SassImportEntry
+    -> IO CString
+
+foreign import ccall unsafe "sass_function.h" sass_import_get_srcmap
+    :: SassImportEntry
+    -> IO CString
+
+foreign import ccall unsafe "sass_function.h" sass_import_take_source
+    :: SassImportEntry
+    -> IO CString
+
+foreign import ccall unsafe "sass_function.h" sass_import_take_srcmap
+    :: SassImportEntry
+    -> IO CString
+
+foreign import ccall unsafe "sass_function.h" sass_import_get_error_line
+    :: SassImportEntry
+    -> IO CSize
+
+foreign import ccall unsafe "sass_function.h" sass_import_get_error_column
+    :: SassImportEntry
+    -> IO CSize
+
+foreign import ccall unsafe "sass_function.h" sass_import_get_error_message
+    :: SassImportEntry
+    -> IO CString
+
+foreign import ccall unsafe "sass_function.h" sass_delete_import_list
+    :: SassImportList
+    -> IO ()
+
+foreign import ccall unsafe "sass_function.h" sass_delete_import
+    :: SassImportEntry
+    -> IO ()
+
+foreign import ccall unsafe "sass_function.h" sass_make_function_list
+    :: CSize
+    -> IO SassFunctionList
+
+foreign import ccall unsafe "sass_function.h" sass_make_function
+    :: CString
+    -> SassFunctionFn
+    -> Ptr ()
+    -> IO SassFunctionEntry
+
+foreign import ccall unsafe "sass_function.h" sass_function_get_list_entry
+    :: SassFunctionList
+    -> CSize
+    -> IO SassFunctionEntry
+
+foreign import ccall unsafe "sass_function.h" sass_function_set_list_entry
+    :: SassFunctionList
+    -> CSize
+    -> SassFunctionEntry
+    -> IO ()
+
+foreign import ccall unsafe "sass_function.h" sass_function_get_signature
+    :: SassFunctionEntry
+    -> IO CString
+
+foreign import ccall unsafe "sass_function.h" sass_function_get_function
+    :: SassFunctionEntry
+    -> IO SassFunctionFn
+
+foreign import ccall unsafe "sass_function.h" sass_function_get_cookie
+    :: SassFunctionEntry
+    -> IO (Ptr ())
diff --git a/Bindings/Libsass/Types.hs b/Bindings/Libsass/Types.hs
new file mode 100644
--- /dev/null
+++ b/Bindings/Libsass/Types.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE EmptyDataDecls #-}
+module Bindings.Libsass.Types where
+
+import           Foreign
+import           Foreign.C.String
+
+-- From sass.h
+
+-- | Defines output style of compiled CSS.
+data SassOutputStyle = SassStyleNested
+                     | SassStyleExpanded
+                     | SassStyleCompact
+                     | SassStyleCompressed
+                     deriving (Eq, Show)
+
+instance Enum SassOutputStyle where
+    fromEnum SassStyleNested     = 0
+    fromEnum SassStyleExpanded   = 1
+    fromEnum SassStyleCompact    = 2
+    fromEnum SassStyleCompressed = 3
+
+    toEnum 0 = SassStyleNested
+    toEnum 1 = SassStyleExpanded
+    toEnum 2 = SassStyleCompact
+    toEnum 3 = SassStyleCompressed
+    toEnum u = error ("SassOutputStyle.toEnum: Cannot match " ++ show u)
+
+-- From sass_context.h
+
+data SassCompiler
+data SassOptions
+data SassContext
+data SassFileContext
+data SassDataContext
+
+data SassCompilerState = SassCompilerCreated
+                       | SassCompilerParsed
+                       | SassCompilerExecuted
+                       deriving (Show, Eq)
+
+instance Enum SassCompilerState where
+    fromEnum SassCompilerCreated  = 0
+    fromEnum SassCompilerParsed   = 1
+    fromEnum SassCompilerExecuted = 2
+
+    toEnum 0 = SassCompilerCreated
+    toEnum 1 = SassCompilerParsed
+    toEnum 2 = SassCompilerExecuted
+    toEnum u = error ("SassCompilerState.toEnum: Cannot match " ++ show u)
+
+-- From sass_functions.h
+
+data SassImport
+data SassImporter
+data SassFunction
+
+type SassImportEntry = Ptr SassImport
+type SassImportList = Ptr (Ptr SassImport)
+type SassImporterEntry = Ptr SassImporter
+type SassImporterList = Ptr (Ptr SassImporter)
+
+type SassImporterFnType = 
+     CString
+  -> SassImporterEntry
+  -> Ptr SassCompiler
+  -> IO SassImportList
+type SassImporterFn = FunPtr SassImporterFnType
+
+type SassFunctionEntry = Ptr SassFunction
+type SassFunctionList = Ptr (Ptr SassFunction)
+
+type SassFunctionFnType =
+     Ptr SassValue
+  -> SassFunctionEntry
+  -> Ptr SassOptions
+  -> IO (Ptr SassValue)
+type SassFunctionFn = FunPtr SassFunctionFnType
+
+-- From sass_values.h
+
+data SassValue
+
+data SassTag = SassBoolean
+             | SassNumber
+             | SassColor
+             | SassString
+             | SassList
+             | SassMap
+             | SassNull
+             | SassError
+             | SassWarning
+             deriving (Eq, Show)
+
+instance Enum SassTag where
+    fromEnum SassBoolean = 0
+    fromEnum SassNumber  = 1
+    fromEnum SassColor   = 2
+    fromEnum SassString  = 3
+    fromEnum SassList    = 4
+    fromEnum SassMap     = 5
+    fromEnum SassNull    = 6
+    fromEnum SassError   = 7
+    fromEnum SassWarning = 8
+
+    toEnum 0 = SassBoolean
+    toEnum 1 = SassNumber
+    toEnum 2 = SassColor
+    toEnum 3 = SassString
+    toEnum 4 = SassList
+    toEnum 5 = SassMap
+    toEnum 6 = SassNull
+    toEnum 7 = SassError
+    toEnum 8 = SassWarning
+    toEnum u = error ("SassTag.toEnum: Cannot match " ++ show u)
+
+-- ^ Separator used in Sass lists.
+data SassSeparator = SassSeparatorComma
+                   | SassSeparatorSpace
+                   deriving (Eq, Show)
+
+instance Enum SassSeparator where
+    fromEnum SassSeparatorComma = 0
+    fromEnum SassSeparatorSpace  = 1
+
+    toEnum 0 = SassSeparatorComma
+    toEnum 1 = SassSeparatorSpace
+    toEnum u = error ("SassSeparator.toEnum: Cannot match " ++ show u)
diff --git a/Bindings/Libsass/Values.hs b/Bindings/Libsass/Values.hs
new file mode 100644
--- /dev/null
+++ b/Bindings/Libsass/Values.hs
@@ -0,0 +1,234 @@
+{-# LANGUAGE ForeignFunctionInterface #-}
+module Bindings.Libsass.Values where
+
+import           Bindings.Libsass.Types
+import           Foreign
+import           Foreign.C
+
+foreign import ccall unsafe "sass_values.h" sass_value_get_tag
+    :: Ptr SassValue
+    -> IO CInt -- ^ Returns 'SassTag'
+
+foreign import ccall unsafe "sass_values.h" sass_value_is_null
+    :: Ptr SassValue
+    -> IO Bool
+
+foreign import ccall unsafe "sass_values.h" sass_value_is_number
+    :: Ptr SassValue
+    -> IO Bool
+
+foreign import ccall unsafe "sass_values.h" sass_value_is_string
+    :: Ptr SassValue
+    -> IO Bool
+
+foreign import ccall unsafe "sass_values.h" sass_value_is_boolean
+    :: Ptr SassValue
+    -> IO Bool
+
+foreign import ccall unsafe "sass_values.h" sass_value_is_color
+    :: Ptr SassValue
+    -> IO Bool
+
+foreign import ccall unsafe "sass_values.h" sass_value_is_list
+    :: Ptr SassValue
+    -> IO Bool
+
+foreign import ccall unsafe "sass_values.h" sass_value_is_map
+    :: Ptr SassValue
+    -> IO Bool
+
+foreign import ccall unsafe "sass_values.h" sass_value_is_error
+    :: Ptr SassValue
+    -> IO Bool
+
+foreign import ccall unsafe "sass_values.h" sass_value_is_warning
+    :: Ptr SassValue
+    -> IO Bool
+
+foreign import ccall unsafe "sass_values.h" sass_number_get_value
+    :: Ptr SassValue
+    -> IO CDouble
+
+foreign import ccall unsafe "sass_values.h" sass_number_set_value
+    :: Ptr SassValue
+    -> CDouble
+    -> IO ()
+
+foreign import ccall unsafe "sass_values.h" sass_number_get_unit
+    :: Ptr SassValue
+    -> IO CString
+
+foreign import ccall unsafe "sass_values.h" sass_number_set_unit
+    :: Ptr SassValue
+    -> CString
+    -> IO ()
+
+foreign import ccall unsafe "sass_values.h" sass_string_get_value
+    :: Ptr SassValue
+    -> IO CString
+
+foreign import ccall unsafe "sass_values.h" sass_string_set_value
+    :: Ptr SassValue
+    -> CString
+    -> IO ()
+
+foreign import ccall unsafe "sass_values.h" sass_boolean_get_value
+    :: Ptr SassValue
+    -> IO Bool
+
+foreign import ccall unsafe "sass_values.h" sass_boolean_set_value
+    :: Ptr SassValue
+    -> Bool
+    -> IO ()
+
+foreign import ccall unsafe "sass_values.h" sass_color_get_r
+    :: Ptr SassValue
+    -> IO CDouble
+
+foreign import ccall unsafe "sass_values.h" sass_color_set_r
+    :: Ptr SassValue
+    -> CDouble
+    -> IO ()
+
+foreign import ccall unsafe "sass_values.h" sass_color_get_g
+    :: Ptr SassValue
+    -> IO CDouble
+
+foreign import ccall unsafe "sass_values.h" sass_color_set_g
+    :: Ptr SassValue
+    -> CDouble
+    -> IO ()
+
+foreign import ccall unsafe "sass_values.h" sass_color_get_b
+    :: Ptr SassValue
+    -> IO CDouble
+
+foreign import ccall unsafe "sass_values.h" sass_color_set_b
+    :: Ptr SassValue
+    -> CDouble
+    -> IO ()
+
+foreign import ccall unsafe "sass_values.h" sass_color_get_a
+    :: Ptr SassValue
+    -> IO CDouble
+
+foreign import ccall unsafe "sass_values.h" sass_color_set_a
+    :: Ptr SassValue
+    -> CDouble
+    -> IO ()
+
+foreign import ccall unsafe "sass_values.h" sass_list_get_length
+    :: Ptr SassValue
+    -> IO CSize
+
+foreign import ccall unsafe "sass_values.h" sass_list_get_separator
+    :: Ptr SassValue
+    -> IO CInt -- ^ Retrurns 'SassSeparator'
+
+foreign import ccall unsafe "sass_values.h" sass_list_set_separator
+    :: Ptr SassValue
+    -> CInt -- ^ 'SassSeparator'
+    -> IO ()
+
+foreign import ccall unsafe "sass_values.h" sass_list_get_value
+    :: Ptr SassValue
+    -> CSize
+    -> IO (Ptr SassValue)
+
+foreign import ccall unsafe "sass_values.h" sass_list_set_value
+    :: Ptr SassValue
+    -> CSize
+    -> Ptr SassValue
+    -> IO ()
+
+foreign import ccall unsafe "sass_values.h" sass_map_get_length
+    :: Ptr SassValue
+    -> IO CSize
+
+foreign import ccall unsafe "sass_values.h" sass_map_get_key
+    :: Ptr SassValue
+    -> CSize
+    -> IO (Ptr SassValue)
+
+foreign import ccall unsafe "sass_values.h" sass_map_set_key
+    :: Ptr SassValue
+    -> CSize
+    -> Ptr SassValue
+    -> IO ()
+
+foreign import ccall unsafe "sass_values.h" sass_map_get_value
+    :: Ptr SassValue
+    -> CSize
+    -> IO (Ptr SassValue)
+
+foreign import ccall unsafe "sass_values.h" sass_map_set_value
+    :: Ptr SassValue
+    -> CSize
+    -> Ptr SassValue
+    -> IO ()
+
+foreign import ccall unsafe "sass_values.h" sass_error_get_message
+    :: Ptr SassValue
+    -> IO CString
+
+foreign import ccall unsafe "sass_values.h" sass_error_set_message
+    :: Ptr SassValue
+    -> CString
+    -> IO ()
+
+foreign import ccall unsafe "sass_values.h" sass_warning_get_message
+    :: Ptr SassValue
+    -> IO CString
+
+foreign import ccall unsafe "sass_values.h" sass_warning_set_message
+    :: Ptr SassValue
+    -> CString
+    -> IO ()
+
+foreign import ccall unsafe "sass_values.h" sass_make_null
+    :: IO (Ptr SassValue)
+
+foreign import ccall unsafe "sass_values.h" sass_make_boolean
+    :: Bool
+    -> IO (Ptr SassValue)
+
+foreign import ccall unsafe "sass_values.h" sass_make_string
+    :: CString
+    -> IO (Ptr SassValue)
+
+foreign import ccall unsafe "sass_values.h" sass_make_number
+    :: CDouble
+    -> CString
+    -> IO (Ptr SassValue)
+
+foreign import ccall unsafe "sass_values.h" sass_make_color
+    :: CDouble
+    -> CDouble
+    -> CDouble
+    -> CDouble
+    -> IO (Ptr SassValue)
+
+foreign import ccall unsafe "sass_values.h" sass_make_list
+    :: CSize
+    -> CInt -- ^ 'SassSeparator'
+    -> IO (Ptr SassValue)
+
+foreign import ccall unsafe "sass_values.h" sass_make_map
+    :: CSize
+    -> IO (Ptr SassValue)
+
+foreign import ccall unsafe "sass_values.h" sass_make_error
+    :: CString
+    -> IO (Ptr SassValue)
+
+foreign import ccall unsafe "sass_values.h" sass_make_warning
+    :: CString
+    -> IO (Ptr SassValue)
+
+foreign import ccall unsafe "sass_values.h" sass_delete_value
+    :: Ptr SassValue
+    -> IO ()
+
+foreign import ccall unsafe "sass_values.h" sass_clone_value
+    :: Ptr SassValue
+    -> IO (Ptr SassValue)
diff --git a/Bindings/Libsass/Wrappers.hs b/Bindings/Libsass/Wrappers.hs
new file mode 100644
--- /dev/null
+++ b/Bindings/Libsass/Wrappers.hs
@@ -0,0 +1,34 @@
+{-# LANGUAGE ForeignFunctionInterface #-}
+module Bindings.Libsass.Wrappers where
+
+import           Bindings.Libsass.Types
+import           Foreign
+
+foreign import ccall safe "wrapper" mkSassImporterFn
+    :: SassImporterFnType
+    -> IO SassImporterFn
+
+foreign import ccall safe "wrapper" mkSassFunctionFn
+    :: SassFunctionFnType
+    -> IO SassFunctionFn
+
+foreign import ccall "sass_context.h &sass_delete_compiler"
+    p_sass_delete_compiler :: FunPtr (Ptr SassCompiler -> IO ())
+
+foreign import ccall "sass_context.h &sass_delete_file_context"
+    p_sass_delete_file_context :: FunPtr (Ptr SassFileContext -> IO ())
+
+foreign import ccall "sass_context.h &sass_delete_data_context"
+    p_sass_delete_data_context :: FunPtr (Ptr SassDataContext -> IO ())
+
+foreign import ccall "sass_function.h &sass_delete_import_list"
+    p_sass_delete_import_list :: FunPtr (SassImportList -> IO ())
+
+foreign import ccall "sass_function.h &sass_delete_import"
+    p_sass_delete_import :: FunPtr (SassImportEntry -> IO ())
+
+foreign import ccall "sass_function.h &sass_delete_importer"
+    p_sass_delete_importer :: FunPtr (SassImporterEntry -> IO ())
+
+foreign import ccall  "sass_values.h &sass_delete_value"
+    p_sass_delete_value :: FunPtr (Ptr SassValue -> IO ())
diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -12,8 +12,8 @@
 main = defaultMainWithHooks simpleUserHooks
   {
     preConf = \a f -> makeLibsass a f >> preConf simpleUserHooks a f
-  , copyHook = copyLibsass
   , confHook = \a f -> confHook simpleUserHooks a f >>= updateExtraLibDirs
+  , postCopy = copyLibsass
   , postClean = cleanLibsass
   }
 
@@ -39,14 +39,14 @@
         }
     }
 
-copyLibsass :: PackageDescription -> LocalBuildInfo -> UserHooks -> CopyFlags
-            -> IO ()
-copyLibsass pkg_descr lbi _ flags = do
+copyLibsass :: Args -> CopyFlags -> PackageDescription -> LocalBuildInfo -> IO ()
+copyLibsass _ flags pkg_descr lbi = do
     let libPref = libdir . absoluteInstallDirs pkg_descr lbi
                 . fromFlag . copyDest
                 $ flags
-    rawSystemExit (fromFlag $ copyVerbosity flags) "cp"
-        ["libsass/lib/libsass.a", libPref]
+    let verb = fromFlag $ copyVerbosity flags
+    rawSystemExit verb "mkdir" ["-p", libPref]
+    rawSystemExit verb "cp" ["libsass/lib/libsass.a", libPref]
 
 
 cleanLibsass :: Args -> CleanFlags -> PackageDescription -> () -> IO ()
diff --git a/hlibsass.cabal b/hlibsass.cabal
--- a/hlibsass.cabal
+++ b/hlibsass.cabal
@@ -1,9 +1,10 @@
 name:                hlibsass
-version:             0.1.0.0
+version:             0.1.1.0
 license:             MIT
 license-file:        LICENSE
 author:              Jakub Fijałkowski <fiolek94@gmail.com>
 maintainer:          fiolek94@gmail.com
+homepage:            https://github.com/jakubfijalkowski/hlibsass
 category:            Foreign
 build-type:          Custom
 cabal-version:       >= 1.10
@@ -34,12 +35,12 @@
 
 library
   exposed-modules:
-      Binding.Libsass
-    , Binding.Libsass.Types
-    , Binding.Libsass.Wrappers
-    , Binding.Libsass.Context
-    , Binding.Libsass.Functions
-    , Binding.Libsass.Values
+      Bindings.Libsass
+    , Bindings.Libsass.Types
+    , Bindings.Libsass.Wrappers
+    , Bindings.Libsass.Context
+    , Bindings.Libsass.Functions
+    , Bindings.Libsass.Values
   build-depends:       base >= 4.7 && < 5
   hs-source-dirs:      .
   default-language:    Haskell2010
diff --git a/tests/Main.hs b/tests/Main.hs
--- a/tests/Main.hs
+++ b/tests/Main.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE BangPatterns #-}
-import           Binding.Libsass
+import           Bindings.Libsass
 import           Foreign
 import           Foreign.C
 import           Test.Hspec
