diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -3,19 +3,19 @@
 > What advantages does he derive from the system of book-keeping by double entry! It is among the finest inventions of the human mind; every prudent master of a house should introduce it into his economy.
 > -- Johann Wolfgang von Goethe
 
-*Buchhaltung* (['bu&#720;&chi;ˌhaltʊŋ], German *book keeping*), written in Haskell, helps you keep track of your finances on the commandline with minimal effort. It provides tools that help you in creating a complete ledger of all your bank and savings accounts', credit cards', and other transactions, in a text-based ledger format, that is readable by the [ledger CLI tool](http://www.ledger-cli.org/) and its many [derivatives](http://plaintextaccounting.org/).
+*Buchhaltung* (['bu&#720;&chi;ˌhaltʊŋ], German *book keeping*), written in Haskell, helps you keep track of your finances on the command line with minimal effort. It provides tools that help you in creating a complete ledger of all your bank and savings accounts', credit cards', and other transactions, in a text-based ledger format, that is readable by the [ledger CLI tool](http://www.ledger-cli.org/) and its many [derivatives](http://plaintextaccounting.org/).
 
 * Fetch your bank transaction directly via FinTS/HBCI/OFXDirectConnect
 * Import transactions from PayPal (can be customized to other formats)
 * Semi-automatically match transactions to accounts using Bayesian classification
 * Semi-automatic transaction entry with meaningful suggestions in keyboard-based speed mode
- * It is couples/room-mates aware: Create several transaction simultaniuously (see [Multi-user add](#multi-user-add))
+ * It is couples/room-mates aware: Create several transaction simultaneously (see [Multi-user add](#multi-user-add))
 
 ## Status & aim
 
-I am actively and successfully using this software since 2010 and my ledger now contains more than 12,000 transactions accurately and continuously tracking the finances of my spouse and me including four checking and two savings accounts, one credit card, two paypal accounts, two cash wallets in EUR, bitcoin trading (both physical and on exchanges) and other currencies like USD, GPB used on trips.
+I am actively and successfully using this software since 2010 and my ledger now contains more than 12,000 transactions accurately and continuously tracking the finances of my spouse and me including four checking and two savings accounts, one credit card, two PayPal accounts, two cash wallets in EUR, bitcoin trading (both physical and on exchanges) and other currencies like USD, GPB used on trips.
 
-The software is in alpha phase and I am looking for early adopters and their use cases. The aim of this stage is to agree about the functionality and customizability and produce a first shipable version, that can be used without tinkering with the source.
+The software is in alpha phase and I am looking for early adopters and their use cases. The aim of this stage is to agree about the functionality and customizability and produce a first shippable version, that can be used without tinkering with the source.
 
 Right now, I am using it on Linux but it should also run wherever GHC runs.
 
@@ -38,7 +38,14 @@
 * [ledger CLI tool](http://www.ledger-cli.org/) or a compatible [derivative](http://plaintextaccounting.org/) (optional)
 
   ... to **query the ledger, create balance and report statements**, [web interface](http://hledger.org/hledger-web.html), etc.
+  
+### Under the hood
 
+AqBanking or any other supported CSV source provides the raw transaction data. The `buchhaltung` binary converts this data into the ledger format and puts the original source in the comments; thereby producing selfcontained transactions without the need for an external database or log. These comments  are used later for duplicates detection and account classification.
+
+The `buchhaltung` binary internally uses the great `hledger` library. The resulting ledger files can be processed/queried with one of the `hledger` tools or any other compatible tool.
+
+
 ## Download, compile & install
 
 ```shell
@@ -86,15 +93,17 @@
 buchhaltung setup
 ```
 
-To clean everythink aqbanking related remove the configured `aqBanking.configDir`  and rerun the `setup` command.
+To clean everything aqbanking related remove the configured `aqBanking.configDir`  and rerun the `setup` command.
 
 ### Manual AqBanking setup
 
-Currently only the `PinTan` method is supportend (pull requests welcome). For other methods or if the AqBanking setup fails due to other reasons, you can configure AqBanking manually into the configured `aqBanking.configDir` (see for help [here](https://www.aquamaniac.de/sites/download/download.php?package=09&release=09&file=01&dummy=aqbanking4-handbook-20091231.pdf) or [here](https://wiki.gnucash.org/wiki/AqBanking), usually via `aqhbci-tool4 -C <aqBanking.configDir>`).
+Currently only the HBCI `PinTan` method is supported by the `setup` command (pull requests welcome). For other methods or if the AqBanking setup fails due to other reasons, you can configure AqBanking manually into the configured `aqBanking.configDir` (see for help [here](https://www.aquamaniac.de/sites/download/download.php?package=09&release=09&file=01&dummy=aqbanking4-handbook-20091231.pdf) or [here](https://wiki.gnucash.org/wiki/AqBanking), usually via `aqhbci-tool4 -C <aqBanking.configDir>`).
 
+So far, I have not tested the OFXDirectConnect capabilities of AqBanking (please share your experiences), but `buchhaltung` should transparently support any method offered by AqBanking.
+
 ## Importing transactions
 
-There various ways (including from PayPal CSV files) to import transactions into your configured `ledgers.imported` file. They are presented in the folling, but consult
+There various ways (including from PayPal CSV files) to import transactions into your configured `ledgers.imported` file. They are presented in the following, but consult
 
 ```shell
 buchhaltung import -h
@@ -102,7 +111,7 @@
 
 and the `-h` calls to its subcommands to see the currently available functionality.
 
-The accounts of the imported transactions will be taken from the configured `bankAccounts` and the offsetting balaence will be posted to an account named `TODO`, and will be replaced by [`match`](#match-accounts).
+The accounts of the imported transactions will be taken from the configured `bankAccounts` and the offsetting balance will be posted to an account named `TODO`, and will be replaced by [`match`](#match-accounts).
 
 The original source information will be included in the second posting's comment and used for learning the account mappings and to find and handle duplicates.
 
@@ -114,7 +123,24 @@
 
 This command fetches and imports all available transactions from all configured AqBanking connections.
 
+In order to import an existing file in [AqBanking format](https://hackage.haskell.org/package/buchhaltung-0.0.3/docs/buchhaltung/src/Buchhaltung-Importers.html#aqbankingImport), use:
 
+```shell
+buchhaltung import <file.csv> aqbanking
+```
+
+### Other formats
+
+For other CSV formats you have two options:
+
+1) Hack the source, which is fun and should be easy since you only need to
+copy and adapt from the other importers.
+
+2) Bring your CSV into a currently supported format. The AqBanking format works especially well
+
+In both cases, you can look at `aqbankingImporter`,
+`comdirectVisaImporter` and `paypalImporter` in [Buchhaltung/Importers.hs](https://hackage.haskell.org/package/buchhaltung-0.0.3/docs/buchhaltung/Buchhaltung-Importers.html).
+
 ### Resolve duplicates
 
 Banks often minimally change the way they report transactions which leads to unwanted duplicates.
@@ -131,7 +157,7 @@
 
 Have a look at the example output [here](match.md).
 
-The significantly speed up this process, it learns the account mapping from existing transactions in the configured `ledgers.imported` file using the original source of the imported tansaction.  
+The significantly speed up this process, it learns the account mapping from existing transactions in the configured `ledgers.imported` file using the original source of the imported transaction.  
 
 See [this](#input-and-tab-completion) information about the account input field.
 
@@ -170,7 +196,7 @@
 
 ### Suggested transactions
 
-After the amount is entered, the user can select a transaction whose title, date, amount and second posting's account will used to prefill an offsetting transaction. Suggestions will consist of all transactions
+After the amount is entered, the user can select a transaction whose title, date, amount and second posting's account will used to pre fill an offsetting transaction. Suggestions will consist of all transactions
 
 * whose second posting has not been cleared (i.e. marked with an asterisk in front of the account name, and
 * whose first posting's amount has the absolute value as the entered amount
@@ -178,7 +204,7 @@
 
 ### Suggested accounts
 
-Once the first posting's account has been entered, the editor suggests accounts for the second posting based on the frequecy of the resulting transaction's accounts in the configured `ledgers.addedByThisUser` file.
+Once the first posting's account has been entered, the editor suggests accounts for the second posting based on the frequency of the resulting transaction's accounts in the configured `ledgers.addedByThisUser` file.
 
 ### Assertions \& assignments
 
@@ -199,7 +225,7 @@
 buchhaltung add -w alice
 ```
 
-If there is more than one user configured — possibly each with their own ledger, they can be included/activated via the commandline argument `-w`. This enables you to enter a transaction where postings belong to different users. When done, a transaction for each user will be generated containing their respective postings and a balancing posting to an account prefixed with the configured `accountPrefixOthers`.
+If there is more than one user configured — possibly each with their own ledger, they can be included/activated via the command-line argument `-w`. This enables you to enter a transaction where postings belong to different users. When done, a transaction for each user will be generated containing their respective postings and a balancing posting to an account prefixed with the configured `accountPrefixOthers`.
 
 Example taken from the [output](add_multi_user.md) of the above command:
 
diff --git a/buchhaltung.cabal b/buchhaltung.cabal
--- a/buchhaltung.cabal
+++ b/buchhaltung.cabal
@@ -1,5 +1,5 @@
 name: buchhaltung
-version: 0.0.3
+version: 0.0.4
 cabal-version: >=1.10
 build-type: Custom
 license: MIT
@@ -10,7 +10,6 @@
 bug-reports: http://github.com/johannesgerer/buchhaltung/issues
 synopsis: Automates most of your plain text accounting data entry in ledger format.
 description:
-    ATTENTION Use 'stack build' as this package requires a developement version of 'hledger'!
     Automatic import and deduplication (from CSV\/FinTS\/HBCI\/OFX), bayesian account matching, and efficient manual entry of <http://plaintextaccounting.org/ ledger> transactions.
     .
     See <https://github.com/johannesgerer/buchhaltung Readme> on Github.
@@ -58,8 +57,8 @@
         hashable >=1.2.4.0 && <1.3,
         haskeline >=0.7.2.3 && <0.8,
         hint >=0.6.0 && <0.7,
-        hledger >=1.0.0 && <1.2,
-        hledger-lib >=1.0.0 && <1.2,
+        hledger ==1.1.*,
+        hledger-lib ==1.1.*,
         lifted-base >=0.2.3.8 && <0.3,
         megaparsec >=5.0.0 && <5.2,
         monad-control >=1.0.1.0 && <1.1,
@@ -78,7 +77,7 @@
         text >=1.2.2.1 && <1.3,
         time >=1.6.0.1 && <1.7,
         transformers >=0.5.2.0 && <0.6,
-        unordered-containers >=0.2.7.1 && <0.3,
+        unordered-containers >=0.2.7.2 && <0.3,
         vector >=0.11.0.0 && <0.12,
         yaml >=0.8.21.1 && <0.9
     default-language: Haskell2010
diff --git a/src/Buchhaltung/Importers.hs b/src/Buchhaltung/Importers.hs
--- a/src/Buchhaltung/Importers.hs
+++ b/src/Buchhaltung/Importers.hs
@@ -181,6 +181,8 @@
 --                 v r = "\"" <> r <> "\""
 
 -- * Comdirect Germany
+--
+-- uses the old way. Do not adopt!
 
 comdirectToAqbanking :: IO ()
 comdirectToAqbanking = toAqbanking2 ';' T.getContents comdirect_header comdirect_mapping $ const True
@@ -282,6 +284,8 @@
 comdirectVisaImporter :: Importer T.Text
 comdirectVisaImporter = Importer windoof $ csvImport comdirectVisa
   
+
+comdirectVisa :: VersionedCSV T.Text
 comdirectVisa = toVersionedCSV (SFormat "visa" $ DefaultVersion "manuell")
   [CSV
         { cFilter  =(/= "") . getCsv "Buchungstag" 
@@ -333,7 +337,7 @@
   
 -- * Paypal (German)
 --
--- understands exports that used the foolowing setting:
+-- understands exports under the following setting:
 --
 -- @
 -- alle guthaben relevanten Zahlungen (kommagetrennt) ohne warenkorbdetails!
diff --git a/src/Buchhaltung/Uniques.hs b/src/Buchhaltung/Uniques.hs
--- a/src/Buchhaltung/Uniques.hs
+++ b/src/Buchhaltung/Uniques.hs
@@ -57,7 +57,7 @@
 key :: Transaction -> Int -> Key
 key tx i = (compAmount $ pamount p, paccount p, tdate tx, i)
   where compAmount (Mixed am) = sort
-          $ fmap (\x -> (acommodity x, aquantity x)) am
+          $ fmap (acommodity &&& aquantity) am
         p = head $ tpostings tx
 
 -- | loop through all existing possible duplicates of a new
diff --git a/stack.yaml b/stack.yaml
--- a/stack.yaml
+++ b/stack.yaml
@@ -1,12 +1,16 @@
 flags: {}
 packages:
 - '.'
-- location:
-    git: https://github.com/simonmichael/hledger.git
-    commit: 282e85c6028227938457fb3b94eb333c4ba4ae65
-  subdirs:
-  - hledger-lib
-  extra-dep: true
+# - location:
+#     git: https://github.com/simonmichael/hledger.git
+#     commit: 282e85c6028227938457fb3b94eb333c4ba4ae65
+#   subdirs:
+#   - hledger-lib
+#   extra-dep: true
 
-resolver: nightly-2016-12-17
+resolver: nightly-2017-01-10
 pvp-bounds: both
+
+
+extra-deps:
+  - regex-tdfa-text-1.0.0.3
