refactored to abstract client
almost
added a simple ui
created a working copy, found some problems in integration which are solved but should be revisted in unit tests