diff --git a/.gitignore b/.gitignore
index af7b7b6e08..6a3d41f624 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,7 +6,8 @@
 !.idea/copyright/Bitsquare_Affero_GPLv3.xml
 !.idea/copyright/profiles_settings.xml
 !.idea/codeStyleSettings.xml
-bitsquare.iml
+*.iml
+*/*.iml
 *.spvchain
 *.wallet
 *.ser
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index fde7fbb678..0000000000
--- a/.travis.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-language: java
-jdk: oraclejdk8
-
-before_install: 
-  - "export DISPLAY=:99.0"
-  - "sh -e /etc/init.d/xvfb start"
-
-notifications:
-  irc:
-    channels: chat.freenode.net#bitsquare
-    template:
-      - '%{message} (%{repository}#%{build_number}, %{duration})'
-      - '%{repository}/%{branch} %{commit} %{author}: %{commit_message}'
-      - '%{build_url}'
-    on_success: change
-    on_failure: always
-    use_notice: true
-    skip_join: true
-
-env:
-  - TERM=dumb
-
-after_success:
-  - ./gradlew jacocoTestReport coveralls
diff --git a/README.md b/README.md
index 347d96897d..8058079267 100644
--- a/README.md
+++ b/README.md
@@ -18,44 +18,12 @@ You can read about all of this and more in the [whitepaper](https://bitsquare.io
 
 Status
 ------
-Pre-alpha and under heavy development.
+Alpha and under heavy development.
 
 Building from source
 --------------------
 
-1. Install the latest JDK (8u20 or better)
-2. Clone this repository
-3. **Build and launch the Bitsquare JavaFX client** by running:
-```
-./gradlew run
-```
-
-Pass command line arguments to the app via the Gradle `-Pargs` property as follows:
-
-    ./gradlew run -Pargs="--help"
-
-Or, **build an executable jar** with the `appJar` task:
-
-    ./gradlew appJar
-
-Run the app as follows:
-
-    java -jar build/libs/bitsquare-<version>-app.jar
-
-Pass the `--help` flag to see what options are available:
-
-    java -jar build/libs/bitsquare-<version>-app.jar --help
-
-To **build a headless bootstrap node jar**, run the `bootstrapNodeJar` task:
-
-    ./gradlew bootstrapNodeJar
-
-Run the bootstrap node:
-
-    java -jar build/libs/bitsquare-<version>-bootstrapNode.jar
-
-
-See [doc/build.md](doc/build.md) for additional information.
+See [doc/build.md](doc/build.md).
 
 
 Staying in Touch
diff --git a/build.gradle b/build.gradle
deleted file mode 100644
index 5bbc101ae8..0000000000
--- a/build.gradle
+++ /dev/null
@@ -1,102 +0,0 @@
-import org.apache.tools.ant.filters.ReplaceTokens
-import org.apache.tools.ant.taskdefs.condition.Os
-
-plugins {
-    id "com.github.johnrengelman.shadow" version "1.1.2"
-    id "com.github.kt3k.coveralls" version "2.0.1x"
-}
-
-apply plugin: 'java'
-apply plugin: 'eclipse'
-apply plugin: 'application'
-apply plugin: 'jacoco'
-
-wrapper.gradleVersion = '2.1'
-
-version = '0.1.1-SNAPSHOT'
-sourceCompatibility = 1.8
-
-sourceSets.main.resources.srcDirs += 'src/main/java'
-sourceSets.test.resources.srcDirs += 'src/test/java'
-
-mainClassName = "io.bitsquare.app.gui.BitsquareAppMain"
-
-run {
-    if (project.hasProperty('args')) {
-        args project.args.split(',')
-    }
-}
-
-processResources {
-    from(sourceSets.main.resources.srcDirs) {
-        include '**/*.properties'
-        filter(ReplaceTokens, tokens: ['app.version': project.version])
-    }
-}
-
-repositories {
-    jcenter()
-    maven { url 'http://tomp2p.net/dev/mvn/' }
-}
-
-dependencies {
-    compile 'org.bitcoinj:bitcoinj-core:0.12.2'
-    compile 'net.tomp2p:tomp2p-all:5.0-Beta3'
-    compile 'io.reactivex:rxjava:1.0.0'
-    compile 'org.springframework:spring-core:4.1.1.RELEASE'
-    compile 'net.sf.jopt-simple:jopt-simple:4.8'
-    compile 'org.slf4j:slf4j-api:1.7.7'
-    compile 'ch.qos.logback:logback-core:1.1.2'
-    compile 'ch.qos.logback:logback-classic:1.1.2'
-    compile 'com.google.inject:guice:3.0'
-    compile 'com.google.guava:guava:16.0.1'
-    compile 'com.google.code.gson:gson:2.2.4'
-    compile 'org.controlsfx:controlsfx:8.0.6_20'
-    compile 'de.jensd:fontawesomefx:8.0.0'
-    compile 'net.glxn:qrgen:1.3'
-    compile 'com.google.code.findbugs:jsr305:2.0.3'
-    compile 'net.jcip:jcip-annotations:1.0'
-    compile 'org.jetbrains:annotations:13.0'
-    compile 'eu.hansolo.enzo:Enzo:0.1.5'
-    compile 'com.vinumeris:updatefx:1.2'
-    testCompile 'junit:junit:4.11'
-    testCompile "org.mockito:mockito-core:1.+"
-    testCompile 'org.springframework:spring-test:4.1.1.RELEASE'
-}
-
-shadowJar.classifier = 'app'
-
-task packageNative(type: Exec, dependsOn: shadowJar) {
-    if (Os.isFamily(Os.FAMILY_MAC))
-        executable "${project.rootDir}/package/mac.sh"
-    else if (Os.isFamily(Os.FAMILY_UNIX))
-        executable "${project.rootDir}/package/linux.sh"
-    else if (Os.isFamily(Os.FAMILY_WINDOWS))
-        executable "${project.rootDir}/package/windows.bat"
-    else
-        throw new GradleException("Unsupported OS: " + System.properties['os.name'])
-
-    args project.version, shadowJar.archivePath, mainClassName
-}
-
-task appJar(dependsOn: shadowJar) {
-    group = "shadow"
-    description = "Builds a Bitsquare client UI executable jar"
-}
-
-task bootstrapNodeJar(type: com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar) {
-    group = "shadow"
-    description = "Builds a Bitsquare bootstrap node executable jar"
-    manifest.attributes 'Main-Class': 'io.bitsquare.app.cli.BootstrapNodeMain'
-    classifier = 'bootstrapNode'
-    from(project.convention.getPlugin(JavaPluginConvention).sourceSets.main.output)
-    configurations = [project.configurations.runtime]
-    exclude('META-INF/INDEX.LIST', 'META-INF/*.SF', 'META-INF/*.DSA', 'META-INF/*.RSA')
-}
-
-jacocoTestReport {
-    reports {
-        xml.enabled = true
-        html.enabled = true
-    }
-}
diff --git a/common/pom.xml b/common/pom.xml
new file mode 100755
index 0000000000..18102fb14a
--- /dev/null
+++ b/common/pom.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <artifactId>parent</artifactId>
+        <groupId>io.bitsquare</groupId>
+        <version>0.1.1-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>common</artifactId>
+
+    <dependencies>
+    </dependencies>
+</project>
\ No newline at end of file
diff --git a/doc/build.md b/doc/build.md
index 52f1fa8b9c..75369886bb 100644
--- a/doc/build.md
+++ b/doc/build.md
@@ -9,21 +9,21 @@ This guide will walk you through the process of building Bitsquare from source.
 For the impatient
 -----------------
 
-What follows is explained in detail in the sections below, but for those who know their way around Java, git and Gradle, here are the instructions in a nutshell:
+What follows is explained in detail in the sections below, but for those who know their way around Java, git and Maven, here are the instructions in a nutshell:
 
     $ javac -version
     javac 1.8.0_20       # must be 1.8.0_20 or better
 
     $ git clone https://github.com/bitsquare/bitsquare.git
     $ cd bitsquare
-    $ ./gradlew appJar    # (on *nix)
-       --- or ---
-    $ gradlew appJar      # (on Windows)
+    $ mvn package    
 
-When the build completes, you will find an excutable jar in the `build/libs` directory. Run it as follows for the help screen:
-
-    $ java -jar build/libs/bitsquare-<version>-app.jar --help
+When the build completes, you will find an excutable jar: `gui/target/shaded.jar`. 
+To run it use:
+    $ java -jar gui/target/shaded.jar
 
+To build the binary needs a bit more preparation as we use [UpdateFX](https://github.com/vinumeris/updatefx) for automatic updates.
+You can find more information in the build scripts under package.
 
 Prerequisites
 -------------
@@ -52,19 +52,20 @@ The preferred approach is to clone the Bitsquare repository using [git](http://w
 However, if you're not familiar with git or it is otherwise inconvenient to use, you can also download and extract a zip file of the latest sources at https://github.com/bitsquare/bitsquare/archive/master.zip.
 
 
-### 2. Build
+### 2. Build jar
 
-Bitsquare uses [Gradle](http://www.gradle.org/), and the [Gradle wrapper](http://www.gradle.org/docs/current/userguide/gradle_wrapper.html) as a build system. This means you don't need to download or do anything other than run the following command within the `bitsquare` directory.
-
-    ./gradlew appJar
-
-> _**NOTE:** on Windows, leave out the `./` and simply run `gradlew appJar`._
+Bitsquare uses maven as a build system. 
 
+    $ cd bitsquare
+    $ mvn package
+    
 
 ### 3. Run
 
-When the build completes, you'll find an executable jar in the `build/libs` directory. See instructions above for how to run it.
+When the build completes, you will find an excutable jar: `gui/target/shaded.jar`. 
+To run it use:
 
+    $ java -jar gui/target/shaded.jar
 
 Problems?
 ---------
diff --git a/doc/update_fork_tomp2p.sh b/doc/update_fork_tomp2p.sh
new file mode 100755
index 0000000000..37aec820da
--- /dev/null
+++ b/doc/update_fork_tomp2p.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+cd /Users/mk/Documents/_intellij/TomP2P-master_fork/TomP2P
+git reset --hard
+git remote add upstream https://github.com/tomp2p/TomP2P.git
+git checkout master
+git pull upstream master
+git push origin master
+
+git checkout published
+git reset --hard master
+export COMMITHASH=$(git log --oneline -1 | cut -d" " -f1)
+git grep -l 5.0-Alpha | xargs perl -p -i -e "s/5.0-Alpha(..?)-SNAPSHOT/5.0-Alpha$1.$COMMITHASH-SNAPSHOT/"
+git commit -am"Qualify pom version for publication"
+echo $COMMITHASH
+
+mvn clean install -DskipTests
+
+git show bitsquare-published-91276e8:README > README
+git add README
+git commit -m"Add README with publication instructions"
+
+git tag bitsquare-published-$COMMITHASH published
+git push -f origin published
+git push --tags
+
+echo $COMMITHASH
+
+
diff --git a/gradle.properties b/gradle.properties
deleted file mode 100644
index 93071f32d8..0000000000
--- a/gradle.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-org.gradle.jvmargs=-Xmx1024m
-org.gradle.daemon=true
\ No newline at end of file
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
deleted file mode 100644
index b761216703..0000000000
Binary files a/gradle/wrapper/gradle-wrapper.jar and /dev/null differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
deleted file mode 100644
index 8e5ef3d667..0000000000
--- a/gradle/wrapper/gradle-wrapper.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-#Tue Sep 30 23:44:09 CEST 2014
-distributionBase=GRADLE_USER_HOME
-distributionPath=wrapper/dists
-zipStoreBase=GRADLE_USER_HOME
-zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-2.1-all.zip
diff --git a/gradlew b/gradlew
deleted file mode 100755
index 91a7e269e1..0000000000
--- a/gradlew
+++ /dev/null
@@ -1,164 +0,0 @@
-#!/usr/bin/env bash
-
-##############################################################################
-##
-##  Gradle start up script for UN*X
-##
-##############################################################################
-
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS=""
-
-APP_NAME="Gradle"
-APP_BASE_NAME=`basename "$0"`
-
-# Use the maximum available, or set MAX_FD != -1 to use that value.
-MAX_FD="maximum"
-
-warn ( ) {
-    echo "$*"
-}
-
-die ( ) {
-    echo
-    echo "$*"
-    echo
-    exit 1
-}
-
-# OS specific support (must be 'true' or 'false').
-cygwin=false
-msys=false
-darwin=false
-case "`uname`" in
-  CYGWIN* )
-    cygwin=true
-    ;;
-  Darwin* )
-    darwin=true
-    ;;
-  MINGW* )
-    msys=true
-    ;;
-esac
-
-# For Cygwin, ensure paths are in UNIX format before anything is touched.
-if $cygwin ; then
-    [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
-fi
-
-# Attempt to set APP_HOME
-# Resolve links: $0 may be a link
-PRG="$0"
-# Need this for relative symlinks.
-while [ -h "$PRG" ] ; do
-    ls=`ls -ld "$PRG"`
-    link=`expr "$ls" : '.*-> \(.*\)$'`
-    if expr "$link" : '/.*' > /dev/null; then
-        PRG="$link"
-    else
-        PRG=`dirname "$PRG"`"/$link"
-    fi
-done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >&-
-APP_HOME="`pwd -P`"
-cd "$SAVED" >&-
-
-CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
-
-# Determine the Java command to use to start the JVM.
-if [ -n "$JAVA_HOME" ] ; then
-    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
-        # IBM's JDK on AIX uses strange locations for the executables
-        JAVACMD="$JAVA_HOME/jre/sh/java"
-    else
-        JAVACMD="$JAVA_HOME/bin/java"
-    fi
-    if [ ! -x "$JAVACMD" ] ; then
-        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-    fi
-else
-    JAVACMD="java"
-    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-fi
-
-# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
-    MAX_FD_LIMIT=`ulimit -H -n`
-    if [ $? -eq 0 ] ; then
-        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
-            MAX_FD="$MAX_FD_LIMIT"
-        fi
-        ulimit -n $MAX_FD
-        if [ $? -ne 0 ] ; then
-            warn "Could not set maximum file descriptor limit: $MAX_FD"
-        fi
-    else
-        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
-    fi
-fi
-
-# For Darwin, add options to specify how the application appears in the dock
-if $darwin; then
-    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
-fi
-
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin ; then
-    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
-    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
-
-    # We build the pattern for arguments to be converted via cygpath
-    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
-    SEP=""
-    for dir in $ROOTDIRSRAW ; do
-        ROOTDIRS="$ROOTDIRS$SEP$dir"
-        SEP="|"
-    done
-    OURCYGPATTERN="(^($ROOTDIRS))"
-    # Add a user-defined pattern to the cygpath arguments
-    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
-        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
-    fi
-    # Now convert the arguments - kludge to limit ourselves to /bin/sh
-    i=0
-    for arg in "$@" ; do
-        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
-        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
-
-        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
-            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
-        else
-            eval `echo args$i`="\"$arg\""
-        fi
-        i=$((i+1))
-    done
-    case $i in
-        (0) set -- ;;
-        (1) set -- "$args0" ;;
-        (2) set -- "$args0" "$args1" ;;
-        (3) set -- "$args0" "$args1" "$args2" ;;
-        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
-        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
-        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
-        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
-        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
-        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
-    esac
-fi
-
-# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
-function splitJvmOpts() {
-    JVM_OPTS=("$@")
-}
-eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
-JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
-
-exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/gradlew.bat b/gradlew.bat
deleted file mode 100644
index aec99730b4..0000000000
--- a/gradlew.bat
+++ /dev/null
@@ -1,90 +0,0 @@
-@if "%DEBUG%" == "" @echo off
-@rem ##########################################################################
-@rem
-@rem  Gradle startup script for Windows
-@rem
-@rem ##########################################################################
-
-@rem Set local scope for the variables with windows NT shell
-if "%OS%"=="Windows_NT" setlocal
-
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS=
-
-set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
-set APP_BASE_NAME=%~n0
-set APP_HOME=%DIRNAME%
-
-@rem Find java.exe
-if defined JAVA_HOME goto findJavaFromJavaHome
-
-set JAVA_EXE=java.exe
-%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto init
-
-echo.
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:findJavaFromJavaHome
-set JAVA_HOME=%JAVA_HOME:"=%
-set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-
-if exist "%JAVA_EXE%" goto init
-
-echo.
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:init
-@rem Get command-line arguments, handling Windowz variants
-
-if not "%OS%" == "Windows_NT" goto win9xME_args
-if "%@eval[2+2]" == "4" goto 4NT_args
-
-:win9xME_args
-@rem Slurp the command line arguments.
-set CMD_LINE_ARGS=
-set _SKIP=2
-
-:win9xME_args_slurp
-if "x%~1" == "x" goto execute
-
-set CMD_LINE_ARGS=%*
-goto execute
-
-:4NT_args
-@rem Get arguments from the 4NT Shell from JP Software
-set CMD_LINE_ARGS=%$
-
-:execute
-@rem Setup the command line
-
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
-
-@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
-
-:end
-@rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
-
-:fail
-rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
-rem the _cmd.exe /c_ return code!
-if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
-
-:mainEnd
-if "%OS%"=="Windows_NT" endlocal
-
-:omega
diff --git a/gui/pom.xml b/gui/pom.xml
new file mode 100755
index 0000000000..36e0c898ac
--- /dev/null
+++ b/gui/pom.xml
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <artifactId>parent</artifactId>
+        <groupId>io.bitsquare</groupId>
+        <version>0.1.1-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>gui</artifactId>
+
+    <build>
+
+        <resources>
+            <resource>
+                <filtering>false</filtering>
+                <directory>${basedir}/src/main/java</directory>
+                <includes>
+                    <include>**/*.fxml</include>
+                    <include>**/*.css</include>
+                </includes>
+            </resource>
+            <resource>
+                <filtering>false</filtering>
+                <directory>${basedir}/src/main/resources</directory>
+                <includes>
+                    <include>**/*.*</include>
+                </includes>
+            </resource>
+        </resources>
+
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-shade-plugin</artifactId>
+                <version>2.3</version>
+                <configuration>
+                    <!-- broken with Java 8 (MSHADE-174), using ProGuard instead. -->
+                    <minimizeJar>false</minimizeJar>
+                    <transformers>
+                        <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
+                            <mainClass>io.bitsquare.app.gui.BitsquareAppMain</mainClass>
+                        </transformer>
+                    </transformers>
+                    <filters>
+                        <filter>
+                            <!-- exclude signatures, the bundling process breaks them for some reason -->
+                            <artifact>*:*</artifact>
+                            <excludes>
+                                <exclude>META-INF/*.SF</exclude>
+                                <exclude>META-INF/*.DSA</exclude>
+                                <exclude>META-INF/*.RSA</exclude>
+                            </excludes>
+                        </filter>
+                    </filters>
+                </configuration>
+                <executions>
+                    <execution>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>shade</goal>
+                        </goals>
+                        <configuration>
+                            <shadedArtifactAttached>true</shadedArtifactAttached>
+                            <shadedClassifierName>bundled</shadedClassifierName>
+                            <finalName>shaded</finalName>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <!-- <plugin>
+                 <groupId>org.apache.maven.plugins</groupId>
+                 <artifactId>maven-enforcer-plugin</artifactId>
+                 <version>1.3.1</version>
+                 <executions>
+                     <execution>
+                         <id>enforce</id>
+                         <configuration>
+                             <rules>
+                                 <DependencyConvergence />
+                             </rules>
+                         </configuration>
+                         <goals>
+                             <goal>enforce</goal>
+                         </goals>
+                     </execution>
+                 </executions>
+             </plugin>-->
+
+        </plugins>
+    </build>
+
+    <repositories>
+        <repository>
+            <id>sonatype-oss-snapshot</id>
+            <snapshots/>
+            <url>https://oss.sonatype.org/content/repositories/snapshots</url>
+        </repository>
+        <repository>
+            <id>repository.tomp2p.net</id>
+            <url>http://tomp2p.net/dev/mvn</url>
+        </repository>
+    </repositories>
+
+    <dependencies>
+        <dependency>
+            <groupId>io.bitsquare</groupId>
+            <artifactId>common</artifactId>
+            <version>${project.parent.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>ch.qos.logback</groupId>
+            <artifactId>logback-core</artifactId>
+            <version>1.1.2</version>
+        </dependency>
+        <dependency>
+            <groupId>ch.qos.logback</groupId>
+            <artifactId>logback-classic</artifactId>
+            <version>1.1.2</version>
+        </dependency>
+        <dependency>
+            <groupId>net.tomp2p</groupId>
+            <artifactId>tomp2p-all</artifactId>
+            <version>5.0-Beta3</version>
+        </dependency>
+        <dependency>
+            <groupId>io.reactivex</groupId>
+            <artifactId>rxjava</artifactId>
+            <version>1.0.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-core</artifactId>
+            <version>4.1.1.RELEASE</version>
+        </dependency>
+        <dependency>
+            <groupId>net.sf.jopt-simple</groupId>
+            <artifactId>jopt-simple</artifactId>
+            <version>4.8</version>
+        </dependency>
+        <dependency>
+            <groupId>com.google.inject</groupId>
+            <artifactId>guice</artifactId>
+            <version>3.0</version>
+        </dependency>
+        <dependency>
+            <groupId>com.google.code.gson</groupId>
+            <artifactId>gson</artifactId>
+            <version>2.2.4</version>
+        </dependency>
+        <dependency>
+            <groupId>org.controlsfx</groupId>
+            <artifactId>controlsfx</artifactId>
+            <version>8.0.6_20</version>
+        </dependency>
+        <dependency>
+            <groupId>de.jensd</groupId>
+            <artifactId>fontawesomefx</artifactId>
+            <version>8.0.0</version>
+        </dependency>
+        <dependency>
+            <groupId>net.glxn</groupId>
+            <artifactId>qrgen</artifactId>
+            <version>1.3</version>
+        </dependency>
+        <dependency>
+            <groupId>com.google.code.findbugs</groupId>
+            <artifactId>jsr305</artifactId>
+            <version>2.0.1</version>
+        </dependency>
+        <dependency>
+            <groupId>net.jcip</groupId>
+            <artifactId>jcip-annotations</artifactId>
+            <version>1.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.jetbrains</groupId>
+            <artifactId>annotations</artifactId>
+            <version>13.0</version>
+        </dependency>
+        <dependency>
+            <groupId>eu.hansolo.enzo</groupId>
+            <artifactId>Enzo</artifactId>
+            <version>0.1.5</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.fxmisc.easybind</groupId>
+            <artifactId>easybind</artifactId>
+            <version>1.0.2</version>
+        </dependency>
+
+         <dependency>
+             <groupId>com.vinumeris</groupId>
+             <artifactId>updatefx</artifactId>
+             <version>1.2</version>
+         </dependency>
+        
+        <!-- 
+          <dependency>
+               <groupId>com.vinumeris</groupId>
+               <artifactId>crashfx-client</artifactId>
+               <version>1.1</version>
+           </dependency>
+        -->
+    </dependencies>
+</project>
diff --git a/src/main/java/eu/hansolo/enzo/notification/Notification.java b/gui/src/main/java/eu/hansolo/enzo/notification/Notification.java
similarity index 100%
rename from src/main/java/eu/hansolo/enzo/notification/Notification.java
rename to gui/src/main/java/eu/hansolo/enzo/notification/Notification.java
diff --git a/src/main/java/io/bitsquare/BitsquareException.java b/gui/src/main/java/io/bitsquare/BitsquareException.java
similarity index 100%
rename from src/main/java/io/bitsquare/BitsquareException.java
rename to gui/src/main/java/io/bitsquare/BitsquareException.java
diff --git a/src/main/java/io/bitsquare/BitsquareModule.java b/gui/src/main/java/io/bitsquare/BitsquareModule.java
similarity index 100%
rename from src/main/java/io/bitsquare/BitsquareModule.java
rename to gui/src/main/java/io/bitsquare/BitsquareModule.java
diff --git a/src/main/java/io/bitsquare/account/AccountSettings.java b/gui/src/main/java/io/bitsquare/account/AccountSettings.java
similarity index 100%
rename from src/main/java/io/bitsquare/account/AccountSettings.java
rename to gui/src/main/java/io/bitsquare/account/AccountSettings.java
diff --git a/src/main/java/io/bitsquare/app/BitsquareEnvironment.java b/gui/src/main/java/io/bitsquare/app/BitsquareEnvironment.java
similarity index 99%
rename from src/main/java/io/bitsquare/app/BitsquareEnvironment.java
rename to gui/src/main/java/io/bitsquare/app/BitsquareEnvironment.java
index 5c80aea540..005833d285 100644
--- a/src/main/java/io/bitsquare/app/BitsquareEnvironment.java
+++ b/gui/src/main/java/io/bitsquare/app/BitsquareEnvironment.java
@@ -45,7 +45,6 @@ public class BitsquareEnvironment extends StandardEnvironment {
 
     public static final String APP_VERSION_KEY = "app.version";
 
-    // TODO what is the difference to APP_DATA_DIR ?
     public static final String USER_DATA_DIR_KEY = "user.data.dir";
 
     public static final String DEFAULT_USER_DATA_DIR = defaultUserDataDir();
@@ -99,7 +98,6 @@ public class BitsquareEnvironment extends StandardEnvironment {
         }
     }
 
-
     PropertySource<?> appDirProperties() throws Exception {
         String location = String.format("file:%s/bitsquare.properties", appDataDir);
         Resource resource = resourceLoader.getResource(location);
diff --git a/src/main/java/io/bitsquare/app/BitsquareExecutable.java b/gui/src/main/java/io/bitsquare/app/BitsquareExecutable.java
similarity index 100%
rename from src/main/java/io/bitsquare/app/BitsquareExecutable.java
rename to gui/src/main/java/io/bitsquare/app/BitsquareExecutable.java
diff --git a/src/main/java/io/bitsquare/app/cli/BootstrapNode.java b/gui/src/main/java/io/bitsquare/app/cli/BootstrapNode.java
similarity index 100%
rename from src/main/java/io/bitsquare/app/cli/BootstrapNode.java
rename to gui/src/main/java/io/bitsquare/app/cli/BootstrapNode.java
diff --git a/src/main/java/io/bitsquare/app/cli/BootstrapNodeMain.java b/gui/src/main/java/io/bitsquare/app/cli/BootstrapNodeMain.java
similarity index 100%
rename from src/main/java/io/bitsquare/app/cli/BootstrapNodeMain.java
rename to gui/src/main/java/io/bitsquare/app/cli/BootstrapNodeMain.java
diff --git a/src/main/java/io/bitsquare/app/gui/BitsquareApp.java b/gui/src/main/java/io/bitsquare/app/gui/BitsquareApp.java
similarity index 96%
rename from src/main/java/io/bitsquare/app/gui/BitsquareApp.java
rename to gui/src/main/java/io/bitsquare/app/gui/BitsquareApp.java
index a36d32bb40..0f072e9b00 100644
--- a/src/main/java/io/bitsquare/app/gui/BitsquareApp.java
+++ b/gui/src/main/java/io/bitsquare/app/gui/BitsquareApp.java
@@ -58,7 +58,7 @@ import org.springframework.util.FileSystemUtils;
 import static io.bitsquare.app.BitsquareEnvironment.*;
 
 public class BitsquareApp extends Application {
-    private static final Logger log = LoggerFactory.getLogger(BitsquareAppMain.class);
+    private static final Logger log = LoggerFactory.getLogger(BitsquareApp.class);
 
     private static Environment env;
 
@@ -71,9 +71,7 @@ public class BitsquareApp extends Application {
 
     @Override
     public void start(Stage primaryStage) throws IOException {
-        // For some reason the JavaFX launch process results in us losing the thread context class loader: reset it.
-        Thread.currentThread().setContextClassLoader(BitsquareApp.class.getClassLoader());
-
+        log.trace("BitsquareApp.start");
         bitsquareAppModule = new BitsquareAppModule(env, primaryStage);
         injector = Guice.createInjector(bitsquareAppModule);
         injector.getInstance(InjectorViewFactory.class).setInjector(injector);
@@ -107,6 +105,7 @@ public class BitsquareApp extends Application {
 
         // load the main view and create the main scene
 
+        log.trace("viewLoader.load(MainView.class)");
         ViewLoader viewLoader = injector.getInstance(CachingViewLoader.class);
         View view = viewLoader.load(MainView.class);
 
@@ -152,6 +151,7 @@ public class BitsquareApp extends Application {
 
         // make the UI visible
 
+        log.trace("primaryStage.show");
         primaryStage.show();
     }
 
diff --git a/src/main/java/io/bitsquare/app/gui/BitsquareAppMain.java b/gui/src/main/java/io/bitsquare/app/gui/BitsquareAppMain.java
similarity index 71%
rename from src/main/java/io/bitsquare/app/gui/BitsquareAppMain.java
rename to gui/src/main/java/io/bitsquare/app/gui/BitsquareAppMain.java
index a9e660c036..a1c6129325 100644
--- a/src/main/java/io/bitsquare/app/gui/BitsquareAppMain.java
+++ b/gui/src/main/java/io/bitsquare/app/gui/BitsquareAppMain.java
@@ -30,6 +30,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import com.vinumeris.updatefx.UpdateFX;
+import joptsimple.OptionException;
 import joptsimple.OptionParser;
 import joptsimple.OptionSet;
 
@@ -42,14 +43,38 @@ public class BitsquareAppMain extends BitsquareExecutable {
     private static final Logger log = LoggerFactory.getLogger(BitsquareAppMain.class);
 
     public static void main(String[] args) throws Exception {
-        // We don't want to do the whole arg parsing/setup here as that might easily change in update versions
-        // So we only handle the absolute minimum which is APP_NAME and USER_DATA_DIR
-        // TODO Not impl. yet, just use default for first testings
-        UpdateFX.bootstrap(BitsquareAppMain.class, new File(BitsquareEnvironment.DEFAULT_APP_DATA_DIR).toPath(), args);
+        // We don't want to do the full argument parsing here as that might easily change in update versions
+        // So we only handle the absolute minimum which is APP_NAME, APP_DATA_DIR_KEY and USER_DATA_DIR
+        OptionParser parser = new OptionParser();
+        parser.accepts(USER_DATA_DIR_KEY, description("User data directory", DEFAULT_USER_DATA_DIR))
+                .withRequiredArg();
+        parser.accepts(APP_NAME_KEY, description("Application name", DEFAULT_APP_NAME))
+                .withRequiredArg();
+        parser.accepts(APP_DATA_DIR_KEY, description("Application data directory", DEFAULT_APP_DATA_DIR))
+                .withRequiredArg();
+
+        OptionSet options;
+        try {
+            options = parser.parse(args);
+        } catch (OptionException ex) {
+            System.out.println("error: " + ex.getMessage());
+            System.out.println();
+            parser.printHelpOn(System.out);
+            System.exit(EXIT_FAILURE);
+            return;
+        }
+        BitsquareEnvironment bitsquareEnvironment = new BitsquareEnvironment(options);
+        String updatesDirectory = bitsquareEnvironment.getProperty(BitsquareEnvironment.APP_DATA_DIR_KEY);
+        UpdateFX.bootstrap(BitsquareAppMain.class, new File(updatesDirectory).toPath(), args);
     }
 
     // That will be called from UpdateFX after updates are checked
     public static void realMain(String[] args) throws Exception {
+        log.trace("realMain");
+        // For some reason the JavaFX launch process results in us losing the thread context class loader: reset it.
+        // In order to work around a bug in JavaFX 8u25 and below, you must include the following code as the first line of your realMain method:
+        Thread.currentThread().setContextClassLoader(BitsquareAppMain.class.getClassLoader());
+
         new BitsquareAppMain().execute(args);
     }
 
diff --git a/src/main/java/io/bitsquare/app/gui/BitsquareAppModule.java b/gui/src/main/java/io/bitsquare/app/gui/BitsquareAppModule.java
similarity index 93%
rename from src/main/java/io/bitsquare/app/gui/BitsquareAppModule.java
rename to gui/src/main/java/io/bitsquare/app/gui/BitsquareAppModule.java
index a3ed2b1739..3f13e671d7 100644
--- a/src/main/java/io/bitsquare/app/gui/BitsquareAppModule.java
+++ b/gui/src/main/java/io/bitsquare/app/gui/BitsquareAppModule.java
@@ -61,10 +61,8 @@ class BitsquareAppModule extends BitsquareModule {
         bindConstant().annotatedWith(named(Persistence.PREFIX_KEY)).to(env.getRequiredProperty(Persistence.PREFIX_KEY));
         bind(Persistence.class).asEagerSingleton();
 
-        // TODO UpdateFXHelper needs Environment. Should we just expose the 2 properties needed? 
         bind(Environment.class).toInstance(env);
-        // for temp testing with mock
-        bind(UpdateProcess.class).to(MockUpdateProcess.class).asEagerSingleton();
+        bind(UpdateProcess.class).asEagerSingleton();
 
         install(messageModule());
         install(bitcoinModule());
diff --git a/src/main/java/io/bitsquare/app/gui/UpdateProcess.java b/gui/src/main/java/io/bitsquare/app/gui/UpdateProcess.java
similarity index 86%
rename from src/main/java/io/bitsquare/app/gui/UpdateProcess.java
rename to gui/src/main/java/io/bitsquare/app/gui/UpdateProcess.java
index 827157336b..ac573d4c4a 100644
--- a/src/main/java/io/bitsquare/app/gui/UpdateProcess.java
+++ b/gui/src/main/java/io/bitsquare/app/gui/UpdateProcess.java
@@ -51,14 +51,15 @@ import rx.subjects.Subject;
 public class UpdateProcess {
     private static final Logger log = LoggerFactory.getLogger(UpdateProcess.class);
 
+    // Edit version for updateFX
     private static final int VERSION = 1;
-    private static final List<ECPoint> UPDATE_SIGNING_KEYS = Crypto.decode(
-            "028B41BDDCDCAD97B6AE088FEECA16DC369353B717E13319370C729CB97D677A11",
-            "031E3D80F21A4D10D385A32ABEDC300DACBEDBC839FBA58376FBD5D791D806BA68"
-    );
-    private static final int UPDATE_SIGNING_THRESHOLD = 1;
+    
+    private static final List<ECPoint> UPDATE_SIGNING_KEYS = Crypto.decode("032D7B4073B0B94F0B0AAD72D4CC2B86FDDE7AAE334DE4BE448B0983D887975289");
     private static final String UPDATES_BASE_URL = "http://localhost:8000/";
+    
+    private static final int UPDATE_SIGNING_THRESHOLD = 1;
     private static final Path ROOT_CLASS_PATH = UpdateFX.findCodePath(BitsquareAppMain.class);
+    private Environment environment;
 
 
     public enum State {
@@ -72,22 +73,11 @@ public class UpdateProcess {
 
     protected String errorMessage;
     protected final Subject<State, State> process = BehaviorSubject.create();
-    protected final AnimationTimer timeoutTimer;
+    protected AnimationTimer timeoutTimer;
 
     @Inject
     public UpdateProcess(Environment environment) {
-        // process.timeout() will cause an error state back but we dont want to break startup in case of an update 
-        // timeout 
-        timeoutTimer = Utilities.setTimeout(10000, new Function<AnimationTimer, Void>() {
-            @Override
-            public Void apply(AnimationTimer animationTimer) {
-                process.onCompleted();
-                return null;
-            }
-        });
-        timeoutTimer.start();
-
-        init(environment);
+        this.environment = environment;
     }
 
     public void restart() {
@@ -102,16 +92,26 @@ public class UpdateProcess {
         return errorMessage;
     }
 
-    protected void init(Environment environment) {
-        log.info("version " + VERSION);
+    public void init() {
+        log.info("UpdateFX current version " + VERSION);
 
+        // process.timeout() will cause an error state back but we don't want to break startup in case of an timeout
+        timeoutTimer = Utilities.setTimeout(10000, new Function<AnimationTimer, Void>() {
+            @Override
+            public Void apply(AnimationTimer animationTimer) {
+                process.onCompleted();
+                return null;
+            }
+        });
+        timeoutTimer.start();
+        
         String agent = environment.getProperty(BitsquareEnvironment.APP_NAME_KEY) + VERSION;
         Path dataDirPath = new File(environment.getProperty(BitsquareEnvironment.APP_DATA_DIR_KEY)).toPath();
         Updater updater = new Updater(UPDATES_BASE_URL, agent, VERSION, dataDirPath, ROOT_CLASS_PATH,
                 UPDATE_SIGNING_KEYS, UPDATE_SIGNING_THRESHOLD) {
             @Override
             protected void updateProgress(long workDone, long max) {
-                log.debug("updateProgress " + workDone + "/" + max);
+                //log.trace("updateProgress " + workDone + "/" + max);
                 super.updateProgress(workDone, max);
             }
         };
@@ -127,24 +127,24 @@ public class UpdateProcess {
         updater.setOnSucceeded(event -> {
             try {
                 UpdateSummary summary = updater.get();
-                if (summary.descriptions.size() > 0) {
+                log.info("summary " +summary.toString());
+                if (summary.descriptions != null && summary.descriptions.size() > 0) {
                     log.info("One liner: {}", summary.descriptions.get(0).getOneLiner());
                     log.info("{}", summary.descriptions.get(0).getDescription());
                 }
                 if (summary.highestVersion > VERSION) {
+                    log.info("UPDATE_AVAILABLE");
                     state.set(State.UPDATE_AVAILABLE);
+                    // We stop the timeout and treat it not completed. 
+                    // The user should click the restart button manually if there are updates available.
+                    timeoutTimer.stop();
                 }
                 else if (summary.highestVersion == VERSION) {
+                    log.info("UP_TO_DATE");
                     state.set(State.UP_TO_DATE);
                     timeoutTimer.stop();
                     process.onCompleted();
                 }
-                
-               /* if (summary.highestVersion > VERSION) {
-                    log.info("Restarting to get version " + summary.highestVersion);
-                    if (UpdateFX.getVersionPin(dataDirPath) == 0)
-                        UpdateFX.restartApp();
-                }*/
             } catch (Throwable e) {
                 log.error("Exception at processing UpdateSummary: " + e.getMessage());
 
@@ -172,5 +172,4 @@ public class UpdateProcess {
         thread.setDaemon(true);
         thread.start();
     }
-
-}
+}
\ No newline at end of file
diff --git a/src/main/java/io/bitsquare/arbitrator/Arbitrator.java b/gui/src/main/java/io/bitsquare/arbitrator/Arbitrator.java
similarity index 100%
rename from src/main/java/io/bitsquare/arbitrator/Arbitrator.java
rename to gui/src/main/java/io/bitsquare/arbitrator/Arbitrator.java
diff --git a/src/main/java/io/bitsquare/arbitrator/Reputation.java b/gui/src/main/java/io/bitsquare/arbitrator/Reputation.java
similarity index 100%
rename from src/main/java/io/bitsquare/arbitrator/Reputation.java
rename to gui/src/main/java/io/bitsquare/arbitrator/Reputation.java
diff --git a/src/main/java/io/bitsquare/bank/BankAccount.java b/gui/src/main/java/io/bitsquare/bank/BankAccount.java
similarity index 100%
rename from src/main/java/io/bitsquare/bank/BankAccount.java
rename to gui/src/main/java/io/bitsquare/bank/BankAccount.java
diff --git a/src/main/java/io/bitsquare/bank/BankAccountType.java b/gui/src/main/java/io/bitsquare/bank/BankAccountType.java
similarity index 100%
rename from src/main/java/io/bitsquare/bank/BankAccountType.java
rename to gui/src/main/java/io/bitsquare/bank/BankAccountType.java
diff --git a/src/main/java/io/bitsquare/btc/AddressBasedCoinSelector.java b/gui/src/main/java/io/bitsquare/btc/AddressBasedCoinSelector.java
similarity index 100%
rename from src/main/java/io/bitsquare/btc/AddressBasedCoinSelector.java
rename to gui/src/main/java/io/bitsquare/btc/AddressBasedCoinSelector.java
diff --git a/src/main/java/io/bitsquare/btc/AddressEntry.java b/gui/src/main/java/io/bitsquare/btc/AddressEntry.java
similarity index 100%
rename from src/main/java/io/bitsquare/btc/AddressEntry.java
rename to gui/src/main/java/io/bitsquare/btc/AddressEntry.java
diff --git a/src/main/java/io/bitsquare/btc/BitcoinModule.java b/gui/src/main/java/io/bitsquare/btc/BitcoinModule.java
similarity index 100%
rename from src/main/java/io/bitsquare/btc/BitcoinModule.java
rename to gui/src/main/java/io/bitsquare/btc/BitcoinModule.java
diff --git a/src/main/java/io/bitsquare/btc/BitcoinNetwork.java b/gui/src/main/java/io/bitsquare/btc/BitcoinNetwork.java
similarity index 100%
rename from src/main/java/io/bitsquare/btc/BitcoinNetwork.java
rename to gui/src/main/java/io/bitsquare/btc/BitcoinNetwork.java
diff --git a/src/main/java/io/bitsquare/btc/BlockChainService.java b/gui/src/main/java/io/bitsquare/btc/BlockChainService.java
similarity index 100%
rename from src/main/java/io/bitsquare/btc/BlockChainService.java
rename to gui/src/main/java/io/bitsquare/btc/BlockChainService.java
diff --git a/src/main/java/io/bitsquare/btc/FeePolicy.java b/gui/src/main/java/io/bitsquare/btc/FeePolicy.java
similarity index 100%
rename from src/main/java/io/bitsquare/btc/FeePolicy.java
rename to gui/src/main/java/io/bitsquare/btc/FeePolicy.java
diff --git a/src/main/java/io/bitsquare/btc/Restrictions.java b/gui/src/main/java/io/bitsquare/btc/Restrictions.java
similarity index 100%
rename from src/main/java/io/bitsquare/btc/Restrictions.java
rename to gui/src/main/java/io/bitsquare/btc/Restrictions.java
diff --git a/src/main/java/io/bitsquare/btc/UserAgent.java b/gui/src/main/java/io/bitsquare/btc/UserAgent.java
similarity index 100%
rename from src/main/java/io/bitsquare/btc/UserAgent.java
rename to gui/src/main/java/io/bitsquare/btc/UserAgent.java
diff --git a/src/main/java/io/bitsquare/btc/WalletService.java b/gui/src/main/java/io/bitsquare/btc/WalletService.java
similarity index 100%
rename from src/main/java/io/bitsquare/btc/WalletService.java
rename to gui/src/main/java/io/bitsquare/btc/WalletService.java
diff --git a/src/main/java/io/bitsquare/btc/listeners/AddressConfidenceListener.java b/gui/src/main/java/io/bitsquare/btc/listeners/AddressConfidenceListener.java
similarity index 100%
rename from src/main/java/io/bitsquare/btc/listeners/AddressConfidenceListener.java
rename to gui/src/main/java/io/bitsquare/btc/listeners/AddressConfidenceListener.java
diff --git a/src/main/java/io/bitsquare/btc/listeners/BalanceListener.java b/gui/src/main/java/io/bitsquare/btc/listeners/BalanceListener.java
similarity index 100%
rename from src/main/java/io/bitsquare/btc/listeners/BalanceListener.java
rename to gui/src/main/java/io/bitsquare/btc/listeners/BalanceListener.java
diff --git a/src/main/java/io/bitsquare/btc/listeners/TxConfidenceListener.java b/gui/src/main/java/io/bitsquare/btc/listeners/TxConfidenceListener.java
similarity index 100%
rename from src/main/java/io/bitsquare/btc/listeners/TxConfidenceListener.java
rename to gui/src/main/java/io/bitsquare/btc/listeners/TxConfidenceListener.java
diff --git a/src/main/java/io/bitsquare/crypto/CryptoModule.java b/gui/src/main/java/io/bitsquare/crypto/CryptoModule.java
similarity index 100%
rename from src/main/java/io/bitsquare/crypto/CryptoModule.java
rename to gui/src/main/java/io/bitsquare/crypto/CryptoModule.java
diff --git a/src/main/java/io/bitsquare/crypto/HashService.java b/gui/src/main/java/io/bitsquare/crypto/HashService.java
similarity index 100%
rename from src/main/java/io/bitsquare/crypto/HashService.java
rename to gui/src/main/java/io/bitsquare/crypto/HashService.java
diff --git a/src/main/java/io/bitsquare/crypto/SignatureService.java b/gui/src/main/java/io/bitsquare/crypto/SignatureService.java
similarity index 100%
rename from src/main/java/io/bitsquare/crypto/SignatureService.java
rename to gui/src/main/java/io/bitsquare/crypto/SignatureService.java
diff --git a/src/main/java/io/bitsquare/gui/GuiModule.java b/gui/src/main/java/io/bitsquare/gui/GuiModule.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/GuiModule.java
rename to gui/src/main/java/io/bitsquare/gui/GuiModule.java
diff --git a/src/main/java/io/bitsquare/gui/Navigation.java b/gui/src/main/java/io/bitsquare/gui/Navigation.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/Navigation.java
rename to gui/src/main/java/io/bitsquare/gui/Navigation.java
diff --git a/src/main/java/io/bitsquare/gui/OverlayManager.java b/gui/src/main/java/io/bitsquare/gui/OverlayManager.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/OverlayManager.java
rename to gui/src/main/java/io/bitsquare/gui/OverlayManager.java
diff --git a/src/main/java/io/bitsquare/gui/SystemTray.java b/gui/src/main/java/io/bitsquare/gui/SystemTray.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/SystemTray.java
rename to gui/src/main/java/io/bitsquare/gui/SystemTray.java
diff --git a/src/main/java/io/bitsquare/gui/bitsquare.css b/gui/src/main/java/io/bitsquare/gui/bitsquare.css
similarity index 100%
rename from src/main/java/io/bitsquare/gui/bitsquare.css
rename to gui/src/main/java/io/bitsquare/gui/bitsquare.css
diff --git a/src/main/java/io/bitsquare/gui/components/AddressTextField.java b/gui/src/main/java/io/bitsquare/gui/components/AddressTextField.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/components/AddressTextField.java
rename to gui/src/main/java/io/bitsquare/gui/components/AddressTextField.java
diff --git a/src/main/java/io/bitsquare/gui/components/BalanceTextField.java b/gui/src/main/java/io/bitsquare/gui/components/BalanceTextField.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/components/BalanceTextField.java
rename to gui/src/main/java/io/bitsquare/gui/components/BalanceTextField.java
diff --git a/src/main/java/io/bitsquare/gui/components/BalanceWithConfirmationTextField.java b/gui/src/main/java/io/bitsquare/gui/components/BalanceWithConfirmationTextField.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/components/BalanceWithConfirmationTextField.java
rename to gui/src/main/java/io/bitsquare/gui/components/BalanceWithConfirmationTextField.java
diff --git a/src/main/java/io/bitsquare/gui/components/InfoDisplay.java b/gui/src/main/java/io/bitsquare/gui/components/InfoDisplay.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/components/InfoDisplay.java
rename to gui/src/main/java/io/bitsquare/gui/components/InfoDisplay.java
diff --git a/src/main/java/io/bitsquare/gui/components/InputTextField.java b/gui/src/main/java/io/bitsquare/gui/components/InputTextField.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/components/InputTextField.java
rename to gui/src/main/java/io/bitsquare/gui/components/InputTextField.java
diff --git a/src/main/java/io/bitsquare/gui/components/NetworkSyncPane.java b/gui/src/main/java/io/bitsquare/gui/components/NetworkSyncPane.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/components/NetworkSyncPane.java
rename to gui/src/main/java/io/bitsquare/gui/components/NetworkSyncPane.java
diff --git a/src/main/java/io/bitsquare/gui/components/Popups.java b/gui/src/main/java/io/bitsquare/gui/components/Popups.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/components/Popups.java
rename to gui/src/main/java/io/bitsquare/gui/components/Popups.java
diff --git a/src/main/java/io/bitsquare/gui/components/SystemNotification.java b/gui/src/main/java/io/bitsquare/gui/components/SystemNotification.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/components/SystemNotification.java
rename to gui/src/main/java/io/bitsquare/gui/components/SystemNotification.java
diff --git a/src/main/java/io/bitsquare/gui/components/TextFieldWithCopyIcon.java b/gui/src/main/java/io/bitsquare/gui/components/TextFieldWithCopyIcon.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/components/TextFieldWithCopyIcon.java
rename to gui/src/main/java/io/bitsquare/gui/components/TextFieldWithCopyIcon.java
diff --git a/src/main/java/io/bitsquare/gui/components/TitledGroupBg.java b/gui/src/main/java/io/bitsquare/gui/components/TitledGroupBg.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/components/TitledGroupBg.java
rename to gui/src/main/java/io/bitsquare/gui/components/TitledGroupBg.java
diff --git a/src/main/java/io/bitsquare/gui/components/TitledSeparator.java b/gui/src/main/java/io/bitsquare/gui/components/TitledSeparator.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/components/TitledSeparator.java
rename to gui/src/main/java/io/bitsquare/gui/components/TitledSeparator.java
diff --git a/src/main/java/io/bitsquare/gui/components/TxIdTextField.java b/gui/src/main/java/io/bitsquare/gui/components/TxIdTextField.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/components/TxIdTextField.java
rename to gui/src/main/java/io/bitsquare/gui/components/TxIdTextField.java
diff --git a/src/main/java/io/bitsquare/gui/components/confidence/ConfidenceProgressIndicator.java b/gui/src/main/java/io/bitsquare/gui/components/confidence/ConfidenceProgressIndicator.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/components/confidence/ConfidenceProgressIndicator.java
rename to gui/src/main/java/io/bitsquare/gui/components/confidence/ConfidenceProgressIndicator.java
diff --git a/src/main/java/io/bitsquare/gui/components/confidence/behavior/ConfidenceProgressIndicatorBehavior.java b/gui/src/main/java/io/bitsquare/gui/components/confidence/behavior/ConfidenceProgressIndicatorBehavior.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/components/confidence/behavior/ConfidenceProgressIndicatorBehavior.java
rename to gui/src/main/java/io/bitsquare/gui/components/confidence/behavior/ConfidenceProgressIndicatorBehavior.java
diff --git a/src/main/java/io/bitsquare/gui/components/confidence/skin/ConfidenceProgressIndicatorSkin.java b/gui/src/main/java/io/bitsquare/gui/components/confidence/skin/ConfidenceProgressIndicatorSkin.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/components/confidence/skin/ConfidenceProgressIndicatorSkin.java
rename to gui/src/main/java/io/bitsquare/gui/components/confidence/skin/ConfidenceProgressIndicatorSkin.java
diff --git a/src/main/java/io/bitsquare/gui/components/processbar/ProcessStepBar.java b/gui/src/main/java/io/bitsquare/gui/components/processbar/ProcessStepBar.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/components/processbar/ProcessStepBar.java
rename to gui/src/main/java/io/bitsquare/gui/components/processbar/ProcessStepBar.java
diff --git a/src/main/java/io/bitsquare/gui/components/processbar/ProcessStepBarSkin.java b/gui/src/main/java/io/bitsquare/gui/components/processbar/ProcessStepBarSkin.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/components/processbar/ProcessStepBarSkin.java
rename to gui/src/main/java/io/bitsquare/gui/components/processbar/ProcessStepBarSkin.java
diff --git a/src/main/java/io/bitsquare/gui/components/processbar/ProcessStepItem.java b/gui/src/main/java/io/bitsquare/gui/components/processbar/ProcessStepItem.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/components/processbar/ProcessStepItem.java
rename to gui/src/main/java/io/bitsquare/gui/components/processbar/ProcessStepItem.java
diff --git a/src/main/java/io/bitsquare/gui/images.css b/gui/src/main/java/io/bitsquare/gui/images.css
similarity index 100%
rename from src/main/java/io/bitsquare/gui/images.css
rename to gui/src/main/java/io/bitsquare/gui/images.css
diff --git a/src/main/java/io/bitsquare/gui/main/MainView.fxml b/gui/src/main/java/io/bitsquare/gui/main/MainView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/MainView.fxml
rename to gui/src/main/java/io/bitsquare/gui/main/MainView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/MainView.java b/gui/src/main/java/io/bitsquare/gui/main/MainView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/MainView.java
rename to gui/src/main/java/io/bitsquare/gui/main/MainView.java
diff --git a/src/main/java/io/bitsquare/gui/main/MainViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/MainViewModel.java
similarity index 98%
rename from src/main/java/io/bitsquare/gui/main/MainViewModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/MainViewModel.java
index c68f2a3ab7..c822a7cff6 100644
--- a/src/main/java/io/bitsquare/gui/main/MainViewModel.java
+++ b/gui/src/main/java/io/bitsquare/gui/main/MainViewModel.java
@@ -149,6 +149,8 @@ class MainViewModel implements ViewModel {
     }
 
     public void initBackend() {
+        Platform.runLater(() -> updateProcess.init());
+        
         setBitcoinNetworkSyncProgress(-1);
         walletService.getDownloadProgress().subscribe(
                 percentage -> Platform.runLater(() -> {
@@ -195,16 +197,16 @@ class MainViewModel implements ViewModel {
                     log.trace("updateProcess completed");
                 });
 
-        Observable<?> backEnd = Observable.merge(message, wallet, updateProcess);
-        backEnd.subscribe(
+        Observable<?> allTasks = Observable.merge(message, wallet, updateProcess);
+        allTasks.subscribe(
                 next -> {
                 },
                 error -> log.error(error.toString()),
-                () -> Platform.runLater(() -> backEndCompleted())
+                () -> Platform.runLater(() -> allTasksCompleted())
         );
     }
 
-    private void backEndCompleted() {
+    private void allTasksCompleted() {
         log.trace("backend completed");
 
         tradeManager.getPendingTrades().addListener(
diff --git a/src/main/java/io/bitsquare/gui/main/account/AccountView.fxml b/gui/src/main/java/io/bitsquare/gui/main/account/AccountView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/AccountView.fxml
rename to gui/src/main/java/io/bitsquare/gui/main/account/AccountView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/account/AccountView.java b/gui/src/main/java/io/bitsquare/gui/main/account/AccountView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/AccountView.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/AccountView.java
diff --git a/src/main/java/io/bitsquare/gui/main/account/AccountViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/account/AccountViewModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/AccountViewModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/AccountViewModel.java
diff --git a/src/main/java/io/bitsquare/gui/main/account/arbitrator/ArbitratorSettingsView.fxml b/gui/src/main/java/io/bitsquare/gui/main/account/arbitrator/ArbitratorSettingsView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/arbitrator/ArbitratorSettingsView.fxml
rename to gui/src/main/java/io/bitsquare/gui/main/account/arbitrator/ArbitratorSettingsView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/account/arbitrator/ArbitratorSettingsView.java b/gui/src/main/java/io/bitsquare/gui/main/account/arbitrator/ArbitratorSettingsView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/arbitrator/ArbitratorSettingsView.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/arbitrator/ArbitratorSettingsView.java
diff --git a/src/main/java/io/bitsquare/gui/main/account/arbitrator/browser/ArbitratorBrowserView.fxml b/gui/src/main/java/io/bitsquare/gui/main/account/arbitrator/browser/ArbitratorBrowserView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/arbitrator/browser/ArbitratorBrowserView.fxml
rename to gui/src/main/java/io/bitsquare/gui/main/account/arbitrator/browser/ArbitratorBrowserView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/account/arbitrator/browser/ArbitratorBrowserView.java b/gui/src/main/java/io/bitsquare/gui/main/account/arbitrator/browser/ArbitratorBrowserView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/arbitrator/browser/ArbitratorBrowserView.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/arbitrator/browser/ArbitratorBrowserView.java
diff --git a/src/main/java/io/bitsquare/gui/main/account/arbitrator/profile/ArbitratorProfileView.fxml b/gui/src/main/java/io/bitsquare/gui/main/account/arbitrator/profile/ArbitratorProfileView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/arbitrator/profile/ArbitratorProfileView.fxml
rename to gui/src/main/java/io/bitsquare/gui/main/account/arbitrator/profile/ArbitratorProfileView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/account/arbitrator/profile/ArbitratorProfileView.java b/gui/src/main/java/io/bitsquare/gui/main/account/arbitrator/profile/ArbitratorProfileView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/arbitrator/profile/ArbitratorProfileView.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/arbitrator/profile/ArbitratorProfileView.java
diff --git a/src/main/java/io/bitsquare/gui/main/account/arbitrator/registration/ArbitratorRegistrationView.fxml b/gui/src/main/java/io/bitsquare/gui/main/account/arbitrator/registration/ArbitratorRegistrationView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/arbitrator/registration/ArbitratorRegistrationView.fxml
rename to gui/src/main/java/io/bitsquare/gui/main/account/arbitrator/registration/ArbitratorRegistrationView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/account/arbitrator/registration/ArbitratorRegistrationView.java b/gui/src/main/java/io/bitsquare/gui/main/account/arbitrator/registration/ArbitratorRegistrationView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/arbitrator/registration/ArbitratorRegistrationView.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/arbitrator/registration/ArbitratorRegistrationView.java
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/changepassword/ChangePasswordView.fxml b/gui/src/main/java/io/bitsquare/gui/main/account/content/changepassword/ChangePasswordView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/changepassword/ChangePasswordView.fxml
rename to gui/src/main/java/io/bitsquare/gui/main/account/content/changepassword/ChangePasswordView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/changepassword/ChangePasswordView.java b/gui/src/main/java/io/bitsquare/gui/main/account/content/changepassword/ChangePasswordView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/changepassword/ChangePasswordView.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/content/changepassword/ChangePasswordView.java
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/changepassword/ChangePasswordViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/account/content/changepassword/ChangePasswordViewModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/changepassword/ChangePasswordViewModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/content/changepassword/ChangePasswordViewModel.java
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/fiat/FiatAccountDataModel.java b/gui/src/main/java/io/bitsquare/gui/main/account/content/fiat/FiatAccountDataModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/fiat/FiatAccountDataModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/content/fiat/FiatAccountDataModel.java
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/fiat/FiatAccountView.fxml b/gui/src/main/java/io/bitsquare/gui/main/account/content/fiat/FiatAccountView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/fiat/FiatAccountView.fxml
rename to gui/src/main/java/io/bitsquare/gui/main/account/content/fiat/FiatAccountView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/fiat/FiatAccountView.java b/gui/src/main/java/io/bitsquare/gui/main/account/content/fiat/FiatAccountView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/fiat/FiatAccountView.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/content/fiat/FiatAccountView.java
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/fiat/FiatAccountViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/account/content/fiat/FiatAccountViewModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/fiat/FiatAccountViewModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/content/fiat/FiatAccountViewModel.java
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/irc/IrcAccountDataModel.java b/gui/src/main/java/io/bitsquare/gui/main/account/content/irc/IrcAccountDataModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/irc/IrcAccountDataModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/content/irc/IrcAccountDataModel.java
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/irc/IrcAccountView.fxml b/gui/src/main/java/io/bitsquare/gui/main/account/content/irc/IrcAccountView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/irc/IrcAccountView.fxml
rename to gui/src/main/java/io/bitsquare/gui/main/account/content/irc/IrcAccountView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/irc/IrcAccountView.java b/gui/src/main/java/io/bitsquare/gui/main/account/content/irc/IrcAccountView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/irc/IrcAccountView.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/content/irc/IrcAccountView.java
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/irc/IrcAccountViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/account/content/irc/IrcAccountViewModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/irc/IrcAccountViewModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/content/irc/IrcAccountViewModel.java
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/password/PasswordView.fxml b/gui/src/main/java/io/bitsquare/gui/main/account/content/password/PasswordView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/password/PasswordView.fxml
rename to gui/src/main/java/io/bitsquare/gui/main/account/content/password/PasswordView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/password/PasswordView.java b/gui/src/main/java/io/bitsquare/gui/main/account/content/password/PasswordView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/password/PasswordView.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/content/password/PasswordView.java
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/password/PasswordViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/account/content/password/PasswordViewModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/password/PasswordViewModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/content/password/PasswordViewModel.java
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/registration/RegistrationDataModel.java b/gui/src/main/java/io/bitsquare/gui/main/account/content/registration/RegistrationDataModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/registration/RegistrationDataModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/content/registration/RegistrationDataModel.java
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/registration/RegistrationView.fxml b/gui/src/main/java/io/bitsquare/gui/main/account/content/registration/RegistrationView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/registration/RegistrationView.fxml
rename to gui/src/main/java/io/bitsquare/gui/main/account/content/registration/RegistrationView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/registration/RegistrationView.java b/gui/src/main/java/io/bitsquare/gui/main/account/content/registration/RegistrationView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/registration/RegistrationView.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/content/registration/RegistrationView.java
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/registration/RegistrationViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/account/content/registration/RegistrationViewModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/registration/RegistrationViewModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/content/registration/RegistrationViewModel.java
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/restrictions/RestrictionsDataModel.java b/gui/src/main/java/io/bitsquare/gui/main/account/content/restrictions/RestrictionsDataModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/restrictions/RestrictionsDataModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/content/restrictions/RestrictionsDataModel.java
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/restrictions/RestrictionsView.fxml b/gui/src/main/java/io/bitsquare/gui/main/account/content/restrictions/RestrictionsView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/restrictions/RestrictionsView.fxml
rename to gui/src/main/java/io/bitsquare/gui/main/account/content/restrictions/RestrictionsView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/restrictions/RestrictionsView.java b/gui/src/main/java/io/bitsquare/gui/main/account/content/restrictions/RestrictionsView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/restrictions/RestrictionsView.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/content/restrictions/RestrictionsView.java
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/restrictions/RestrictionsViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/account/content/restrictions/RestrictionsViewModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/restrictions/RestrictionsViewModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/content/restrictions/RestrictionsViewModel.java
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/seedwords/SeedWordsView.fxml b/gui/src/main/java/io/bitsquare/gui/main/account/content/seedwords/SeedWordsView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/seedwords/SeedWordsView.fxml
rename to gui/src/main/java/io/bitsquare/gui/main/account/content/seedwords/SeedWordsView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/seedwords/SeedWordsView.java b/gui/src/main/java/io/bitsquare/gui/main/account/content/seedwords/SeedWordsView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/seedwords/SeedWordsView.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/content/seedwords/SeedWordsView.java
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/seedwords/SeedWordsViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/account/content/seedwords/SeedWordsViewModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/seedwords/SeedWordsViewModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/content/seedwords/SeedWordsViewModel.java
diff --git a/src/main/java/io/bitsquare/gui/main/account/settings/AccountSettingsView.fxml b/gui/src/main/java/io/bitsquare/gui/main/account/settings/AccountSettingsView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/settings/AccountSettingsView.fxml
rename to gui/src/main/java/io/bitsquare/gui/main/account/settings/AccountSettingsView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/account/settings/AccountSettingsView.java b/gui/src/main/java/io/bitsquare/gui/main/account/settings/AccountSettingsView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/settings/AccountSettingsView.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/settings/AccountSettingsView.java
diff --git a/src/main/java/io/bitsquare/gui/main/account/setup/AccountSetupWizard.fxml b/gui/src/main/java/io/bitsquare/gui/main/account/setup/AccountSetupWizard.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/setup/AccountSetupWizard.fxml
rename to gui/src/main/java/io/bitsquare/gui/main/account/setup/AccountSetupWizard.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/account/setup/AccountSetupWizard.java b/gui/src/main/java/io/bitsquare/gui/main/account/setup/AccountSetupWizard.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/setup/AccountSetupWizard.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/setup/AccountSetupWizard.java
diff --git a/src/main/java/io/bitsquare/gui/main/funds/FundsView.fxml b/gui/src/main/java/io/bitsquare/gui/main/funds/FundsView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/funds/FundsView.fxml
rename to gui/src/main/java/io/bitsquare/gui/main/funds/FundsView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/funds/FundsView.java b/gui/src/main/java/io/bitsquare/gui/main/funds/FundsView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/funds/FundsView.java
rename to gui/src/main/java/io/bitsquare/gui/main/funds/FundsView.java
diff --git a/src/main/java/io/bitsquare/gui/main/funds/transactions/TransactionsListItem.java b/gui/src/main/java/io/bitsquare/gui/main/funds/transactions/TransactionsListItem.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/funds/transactions/TransactionsListItem.java
rename to gui/src/main/java/io/bitsquare/gui/main/funds/transactions/TransactionsListItem.java
diff --git a/src/main/java/io/bitsquare/gui/main/funds/transactions/TransactionsView.fxml b/gui/src/main/java/io/bitsquare/gui/main/funds/transactions/TransactionsView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/funds/transactions/TransactionsView.fxml
rename to gui/src/main/java/io/bitsquare/gui/main/funds/transactions/TransactionsView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/funds/transactions/TransactionsView.java b/gui/src/main/java/io/bitsquare/gui/main/funds/transactions/TransactionsView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/funds/transactions/TransactionsView.java
rename to gui/src/main/java/io/bitsquare/gui/main/funds/transactions/TransactionsView.java
diff --git a/src/main/java/io/bitsquare/gui/main/funds/withdrawal/WithdrawalListItem.java b/gui/src/main/java/io/bitsquare/gui/main/funds/withdrawal/WithdrawalListItem.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/funds/withdrawal/WithdrawalListItem.java
rename to gui/src/main/java/io/bitsquare/gui/main/funds/withdrawal/WithdrawalListItem.java
diff --git a/src/main/java/io/bitsquare/gui/main/funds/withdrawal/WithdrawalView.fxml b/gui/src/main/java/io/bitsquare/gui/main/funds/withdrawal/WithdrawalView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/funds/withdrawal/WithdrawalView.fxml
rename to gui/src/main/java/io/bitsquare/gui/main/funds/withdrawal/WithdrawalView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/funds/withdrawal/WithdrawalView.java b/gui/src/main/java/io/bitsquare/gui/main/funds/withdrawal/WithdrawalView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/funds/withdrawal/WithdrawalView.java
rename to gui/src/main/java/io/bitsquare/gui/main/funds/withdrawal/WithdrawalView.java
diff --git a/src/main/java/io/bitsquare/gui/main/help/Help.java b/gui/src/main/java/io/bitsquare/gui/main/help/Help.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/help/Help.java
rename to gui/src/main/java/io/bitsquare/gui/main/help/Help.java
diff --git a/src/main/java/io/bitsquare/gui/main/help/HelpId.java b/gui/src/main/java/io/bitsquare/gui/main/help/HelpId.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/help/HelpId.java
rename to gui/src/main/java/io/bitsquare/gui/main/help/HelpId.java
diff --git a/src/main/java/io/bitsquare/gui/main/home/HomeView.fxml b/gui/src/main/java/io/bitsquare/gui/main/home/HomeView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/home/HomeView.fxml
rename to gui/src/main/java/io/bitsquare/gui/main/home/HomeView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/home/HomeView.java b/gui/src/main/java/io/bitsquare/gui/main/home/HomeView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/home/HomeView.java
rename to gui/src/main/java/io/bitsquare/gui/main/home/HomeView.java
diff --git a/src/main/java/io/bitsquare/gui/main/msg/MsgView.fxml b/gui/src/main/java/io/bitsquare/gui/main/msg/MsgView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/msg/MsgView.fxml
rename to gui/src/main/java/io/bitsquare/gui/main/msg/MsgView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/msg/MsgView.java b/gui/src/main/java/io/bitsquare/gui/main/msg/MsgView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/msg/MsgView.java
rename to gui/src/main/java/io/bitsquare/gui/main/msg/MsgView.java
diff --git a/src/main/java/io/bitsquare/gui/main/portfolio/PortfolioView.fxml b/gui/src/main/java/io/bitsquare/gui/main/portfolio/PortfolioView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/portfolio/PortfolioView.fxml
rename to gui/src/main/java/io/bitsquare/gui/main/portfolio/PortfolioView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/portfolio/PortfolioView.java b/gui/src/main/java/io/bitsquare/gui/main/portfolio/PortfolioView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/portfolio/PortfolioView.java
rename to gui/src/main/java/io/bitsquare/gui/main/portfolio/PortfolioView.java
diff --git a/src/main/java/io/bitsquare/gui/main/portfolio/closed/ClosedTradesDataModel.java b/gui/src/main/java/io/bitsquare/gui/main/portfolio/closed/ClosedTradesDataModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/portfolio/closed/ClosedTradesDataModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/portfolio/closed/ClosedTradesDataModel.java
diff --git a/src/main/java/io/bitsquare/gui/main/portfolio/closed/ClosedTradesListItem.java b/gui/src/main/java/io/bitsquare/gui/main/portfolio/closed/ClosedTradesListItem.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/portfolio/closed/ClosedTradesListItem.java
rename to gui/src/main/java/io/bitsquare/gui/main/portfolio/closed/ClosedTradesListItem.java
diff --git a/src/main/java/io/bitsquare/gui/main/portfolio/closed/ClosedTradesView.fxml b/gui/src/main/java/io/bitsquare/gui/main/portfolio/closed/ClosedTradesView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/portfolio/closed/ClosedTradesView.fxml
rename to gui/src/main/java/io/bitsquare/gui/main/portfolio/closed/ClosedTradesView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/portfolio/closed/ClosedTradesView.java b/gui/src/main/java/io/bitsquare/gui/main/portfolio/closed/ClosedTradesView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/portfolio/closed/ClosedTradesView.java
rename to gui/src/main/java/io/bitsquare/gui/main/portfolio/closed/ClosedTradesView.java
diff --git a/src/main/java/io/bitsquare/gui/main/portfolio/closed/ClosedTradesViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/portfolio/closed/ClosedTradesViewModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/portfolio/closed/ClosedTradesViewModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/portfolio/closed/ClosedTradesViewModel.java
diff --git a/src/main/java/io/bitsquare/gui/main/portfolio/offer/OfferListItem.java b/gui/src/main/java/io/bitsquare/gui/main/portfolio/offer/OfferListItem.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/portfolio/offer/OfferListItem.java
rename to gui/src/main/java/io/bitsquare/gui/main/portfolio/offer/OfferListItem.java
diff --git a/src/main/java/io/bitsquare/gui/main/portfolio/offer/OffersDataModel.java b/gui/src/main/java/io/bitsquare/gui/main/portfolio/offer/OffersDataModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/portfolio/offer/OffersDataModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/portfolio/offer/OffersDataModel.java
diff --git a/src/main/java/io/bitsquare/gui/main/portfolio/offer/OffersView.fxml b/gui/src/main/java/io/bitsquare/gui/main/portfolio/offer/OffersView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/portfolio/offer/OffersView.fxml
rename to gui/src/main/java/io/bitsquare/gui/main/portfolio/offer/OffersView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/portfolio/offer/OffersView.java b/gui/src/main/java/io/bitsquare/gui/main/portfolio/offer/OffersView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/portfolio/offer/OffersView.java
rename to gui/src/main/java/io/bitsquare/gui/main/portfolio/offer/OffersView.java
diff --git a/src/main/java/io/bitsquare/gui/main/portfolio/offer/OffersViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/portfolio/offer/OffersViewModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/portfolio/offer/OffersViewModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/portfolio/offer/OffersViewModel.java
diff --git a/src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesDataModel.java b/gui/src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesDataModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesDataModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesDataModel.java
diff --git a/src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesListItem.java b/gui/src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesListItem.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesListItem.java
rename to gui/src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesListItem.java
diff --git a/src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesView.fxml b/gui/src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesView.fxml
rename to gui/src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesView.java b/gui/src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesView.java
rename to gui/src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesView.java
diff --git a/src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesViewModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesViewModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesViewModel.java
diff --git a/src/main/java/io/bitsquare/gui/main/settings/SettingsView.fxml b/gui/src/main/java/io/bitsquare/gui/main/settings/SettingsView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/settings/SettingsView.fxml
rename to gui/src/main/java/io/bitsquare/gui/main/settings/SettingsView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/settings/SettingsView.java b/gui/src/main/java/io/bitsquare/gui/main/settings/SettingsView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/settings/SettingsView.java
rename to gui/src/main/java/io/bitsquare/gui/main/settings/SettingsView.java
diff --git a/src/main/java/io/bitsquare/gui/main/settings/application/PreferencesDataModel.java b/gui/src/main/java/io/bitsquare/gui/main/settings/application/PreferencesDataModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/settings/application/PreferencesDataModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/settings/application/PreferencesDataModel.java
diff --git a/src/main/java/io/bitsquare/gui/main/settings/application/PreferencesView.fxml b/gui/src/main/java/io/bitsquare/gui/main/settings/application/PreferencesView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/settings/application/PreferencesView.fxml
rename to gui/src/main/java/io/bitsquare/gui/main/settings/application/PreferencesView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/settings/application/PreferencesView.java b/gui/src/main/java/io/bitsquare/gui/main/settings/application/PreferencesView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/settings/application/PreferencesView.java
rename to gui/src/main/java/io/bitsquare/gui/main/settings/application/PreferencesView.java
diff --git a/src/main/java/io/bitsquare/gui/main/settings/application/PreferencesViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/settings/application/PreferencesViewModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/settings/application/PreferencesViewModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/settings/application/PreferencesViewModel.java
diff --git a/src/main/java/io/bitsquare/gui/main/settings/network/NetworkSettingsView.fxml b/gui/src/main/java/io/bitsquare/gui/main/settings/network/NetworkSettingsView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/settings/network/NetworkSettingsView.fxml
rename to gui/src/main/java/io/bitsquare/gui/main/settings/network/NetworkSettingsView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/settings/network/NetworkSettingsView.java b/gui/src/main/java/io/bitsquare/gui/main/settings/network/NetworkSettingsView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/settings/network/NetworkSettingsView.java
rename to gui/src/main/java/io/bitsquare/gui/main/settings/network/NetworkSettingsView.java
diff --git a/src/main/java/io/bitsquare/gui/main/trade/BuyView.fxml b/gui/src/main/java/io/bitsquare/gui/main/trade/BuyView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/trade/BuyView.fxml
rename to gui/src/main/java/io/bitsquare/gui/main/trade/BuyView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/trade/BuyView.java b/gui/src/main/java/io/bitsquare/gui/main/trade/BuyView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/trade/BuyView.java
rename to gui/src/main/java/io/bitsquare/gui/main/trade/BuyView.java
diff --git a/src/main/java/io/bitsquare/gui/main/trade/SellView.fxml b/gui/src/main/java/io/bitsquare/gui/main/trade/SellView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/trade/SellView.fxml
rename to gui/src/main/java/io/bitsquare/gui/main/trade/SellView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/trade/SellView.java b/gui/src/main/java/io/bitsquare/gui/main/trade/SellView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/trade/SellView.java
rename to gui/src/main/java/io/bitsquare/gui/main/trade/SellView.java
diff --git a/src/main/java/io/bitsquare/gui/main/trade/TradeView.java b/gui/src/main/java/io/bitsquare/gui/main/trade/TradeView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/trade/TradeView.java
rename to gui/src/main/java/io/bitsquare/gui/main/trade/TradeView.java
diff --git a/src/main/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferDataModel.java b/gui/src/main/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferDataModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferDataModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferDataModel.java
diff --git a/src/main/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferView.fxml b/gui/src/main/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferView.fxml
rename to gui/src/main/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferView.java b/gui/src/main/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferView.java
rename to gui/src/main/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferView.java
diff --git a/src/main/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferViewModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferViewModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferViewModel.java
diff --git a/src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBook.java b/gui/src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBook.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBook.java
rename to gui/src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBook.java
diff --git a/src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBookDataModel.java b/gui/src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBookDataModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBookDataModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBookDataModel.java
diff --git a/src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBookListItem.java b/gui/src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBookListItem.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBookListItem.java
rename to gui/src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBookListItem.java
diff --git a/src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBookView.fxml b/gui/src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBookView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBookView.fxml
rename to gui/src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBookView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBookView.java b/gui/src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBookView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBookView.java
rename to gui/src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBookView.java
diff --git a/src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBookViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBookViewModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBookViewModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBookViewModel.java
diff --git a/src/main/java/io/bitsquare/gui/main/trade/takeoffer/TakeOfferDataModel.java b/gui/src/main/java/io/bitsquare/gui/main/trade/takeoffer/TakeOfferDataModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/trade/takeoffer/TakeOfferDataModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/trade/takeoffer/TakeOfferDataModel.java
diff --git a/src/main/java/io/bitsquare/gui/main/trade/takeoffer/TakeOfferView.fxml b/gui/src/main/java/io/bitsquare/gui/main/trade/takeoffer/TakeOfferView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/trade/takeoffer/TakeOfferView.fxml
rename to gui/src/main/java/io/bitsquare/gui/main/trade/takeoffer/TakeOfferView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/trade/takeoffer/TakeOfferView.java b/gui/src/main/java/io/bitsquare/gui/main/trade/takeoffer/TakeOfferView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/trade/takeoffer/TakeOfferView.java
rename to gui/src/main/java/io/bitsquare/gui/main/trade/takeoffer/TakeOfferView.java
diff --git a/src/main/java/io/bitsquare/gui/main/trade/takeoffer/TakeOfferViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/trade/takeoffer/TakeOfferViewModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/trade/takeoffer/TakeOfferViewModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/trade/takeoffer/TakeOfferViewModel.java
diff --git a/src/main/java/io/bitsquare/gui/util/BSFormatter.java b/gui/src/main/java/io/bitsquare/gui/util/BSFormatter.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/util/BSFormatter.java
rename to gui/src/main/java/io/bitsquare/gui/util/BSFormatter.java
diff --git a/src/main/java/io/bitsquare/gui/util/Colors.java b/gui/src/main/java/io/bitsquare/gui/util/Colors.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/util/Colors.java
rename to gui/src/main/java/io/bitsquare/gui/util/Colors.java
diff --git a/src/main/java/io/bitsquare/gui/util/ImageUtil.java b/gui/src/main/java/io/bitsquare/gui/util/ImageUtil.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/util/ImageUtil.java
rename to gui/src/main/java/io/bitsquare/gui/util/ImageUtil.java
diff --git a/src/main/java/io/bitsquare/gui/util/Profiler.java b/gui/src/main/java/io/bitsquare/gui/util/Profiler.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/util/Profiler.java
rename to gui/src/main/java/io/bitsquare/gui/util/Profiler.java
diff --git a/src/main/java/io/bitsquare/gui/util/Transitions.java b/gui/src/main/java/io/bitsquare/gui/util/Transitions.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/util/Transitions.java
rename to gui/src/main/java/io/bitsquare/gui/util/Transitions.java
diff --git a/src/main/java/io/bitsquare/gui/util/validation/BankAccountNumberValidator.java b/gui/src/main/java/io/bitsquare/gui/util/validation/BankAccountNumberValidator.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/util/validation/BankAccountNumberValidator.java
rename to gui/src/main/java/io/bitsquare/gui/util/validation/BankAccountNumberValidator.java
diff --git a/src/main/java/io/bitsquare/gui/util/validation/BtcAddressValidator.java b/gui/src/main/java/io/bitsquare/gui/util/validation/BtcAddressValidator.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/util/validation/BtcAddressValidator.java
rename to gui/src/main/java/io/bitsquare/gui/util/validation/BtcAddressValidator.java
diff --git a/src/main/java/io/bitsquare/gui/util/validation/BtcValidator.java b/gui/src/main/java/io/bitsquare/gui/util/validation/BtcValidator.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/util/validation/BtcValidator.java
rename to gui/src/main/java/io/bitsquare/gui/util/validation/BtcValidator.java
diff --git a/src/main/java/io/bitsquare/gui/util/validation/FiatValidator.java b/gui/src/main/java/io/bitsquare/gui/util/validation/FiatValidator.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/util/validation/FiatValidator.java
rename to gui/src/main/java/io/bitsquare/gui/util/validation/FiatValidator.java
diff --git a/src/main/java/io/bitsquare/gui/util/validation/InputValidator.java b/gui/src/main/java/io/bitsquare/gui/util/validation/InputValidator.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/util/validation/InputValidator.java
rename to gui/src/main/java/io/bitsquare/gui/util/validation/InputValidator.java
diff --git a/src/main/java/io/bitsquare/gui/util/validation/NumberValidator.java b/gui/src/main/java/io/bitsquare/gui/util/validation/NumberValidator.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/util/validation/NumberValidator.java
rename to gui/src/main/java/io/bitsquare/gui/util/validation/NumberValidator.java
diff --git a/src/main/java/io/bitsquare/gui/util/validation/OptionalBtcValidator.java b/gui/src/main/java/io/bitsquare/gui/util/validation/OptionalBtcValidator.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/util/validation/OptionalBtcValidator.java
rename to gui/src/main/java/io/bitsquare/gui/util/validation/OptionalBtcValidator.java
diff --git a/src/main/java/io/bitsquare/gui/util/validation/OptionalFiatValidator.java b/gui/src/main/java/io/bitsquare/gui/util/validation/OptionalFiatValidator.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/util/validation/OptionalFiatValidator.java
rename to gui/src/main/java/io/bitsquare/gui/util/validation/OptionalFiatValidator.java
diff --git a/src/main/java/io/bitsquare/gui/util/validation/PasswordValidator.java b/gui/src/main/java/io/bitsquare/gui/util/validation/PasswordValidator.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/util/validation/PasswordValidator.java
rename to gui/src/main/java/io/bitsquare/gui/util/validation/PasswordValidator.java
diff --git a/src/main/java/io/bitsquare/locale/BSResources.java b/gui/src/main/java/io/bitsquare/locale/BSResources.java
similarity index 100%
rename from src/main/java/io/bitsquare/locale/BSResources.java
rename to gui/src/main/java/io/bitsquare/locale/BSResources.java
diff --git a/src/main/java/io/bitsquare/locale/Country.java b/gui/src/main/java/io/bitsquare/locale/Country.java
similarity index 100%
rename from src/main/java/io/bitsquare/locale/Country.java
rename to gui/src/main/java/io/bitsquare/locale/Country.java
diff --git a/src/main/java/io/bitsquare/locale/CountryUtil.java b/gui/src/main/java/io/bitsquare/locale/CountryUtil.java
similarity index 100%
rename from src/main/java/io/bitsquare/locale/CountryUtil.java
rename to gui/src/main/java/io/bitsquare/locale/CountryUtil.java
diff --git a/src/main/java/io/bitsquare/locale/CurrencyUtil.java b/gui/src/main/java/io/bitsquare/locale/CurrencyUtil.java
similarity index 100%
rename from src/main/java/io/bitsquare/locale/CurrencyUtil.java
rename to gui/src/main/java/io/bitsquare/locale/CurrencyUtil.java
diff --git a/src/main/java/io/bitsquare/locale/LanguageUtil.java b/gui/src/main/java/io/bitsquare/locale/LanguageUtil.java
similarity index 100%
rename from src/main/java/io/bitsquare/locale/LanguageUtil.java
rename to gui/src/main/java/io/bitsquare/locale/LanguageUtil.java
diff --git a/src/main/java/io/bitsquare/locale/Region.java b/gui/src/main/java/io/bitsquare/locale/Region.java
similarity index 100%
rename from src/main/java/io/bitsquare/locale/Region.java
rename to gui/src/main/java/io/bitsquare/locale/Region.java
diff --git a/gui/src/main/java/io/bitsquare/modena.css b/gui/src/main/java/io/bitsquare/modena.css
new file mode 100644
index 0000000000..65796ee424
--- /dev/null
+++ b/gui/src/main/java/io/bitsquare/modena.css
@@ -0,0 +1,3115 @@
+/*
+    Modena
+    
+    This is the second generation theme for JavaFX after Caspian.
+*/
+
+/*
+ * Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved. 
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 
+ *  
+ * This code is free software; you can redistribute it and/or modify it 
+ * under the terms of the GNU General Public License version 2 only, as 
+ * published by the Free Software Foundation.  Oracle designates this 
+ * particular file as subject to the "Classpath" exception as provided 
+ * by Oracle in the LICENSE file that accompanied this code. 
+ *  
+ * This code is distributed in the hope that it will be useful, but WITHOUT 
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License 
+ * version 2 for more details (a copy is included in the LICENSE file that 
+ * accompanied this code). 
+ *  
+ * You should have received a copy of the GNU General Public License version 
+ * 2 along with this work; if not, write to the Free Software Foundation, 
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 
+ *  
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 
+ * or visit www.oracle.com if you need additional information or have any 
+ * questions.
+ *                                                                              
+ */
+
+/*******************************************************************************
+ *                                                                             *
+ * THEMING INSTRUCTIONS                                                       *
+ *                                                                             *
+ *******************************************************************************
+
+TODO: Explain here how theming works:
+
+     * -fx-text-base-color for text on top of -fx-base, -fx-color, and -fx-body-color
+     * -fx-text-background-color for text on top of -fx-background
+     * -fx-text-inner-color for text on top of -fx-control-inner-color
+     * -fx-selection-bar-text for text on top of -fx-selection-bar
+
+RESIZING FOR DIFFERENT SCREEN DPI
+-------------------------------
+
+When the screen DPI changes Windows will use a different font size by default. 
+The default is 12px and can change to 15px or 18px depending on user 
+preference or screen DPI. On Mac the default is 13px and embedded will depend 
+on hardware. To make UI controls scale and be the right proportions for each of 
+these font sizes we base the padding (which controls size of control) on the 
+font size. This is done using the CSS measurement unit of a "em" where
+(1em = font size). The default sizes are based on Windows default of 12px, as
+a quick reference here are common px sizes in em units on windows.
+
+Windows 12px -> em units    -> Mac 13px      | 
+----------------------------------------
+     1px     -> 0.083333em  -> 1.08px ~ 2px
+     2px     -> 0.166667em  -> 2.16px ~ 3px
+     3px  = 0.25em
+     4px  = 0.333333em
+     5px  = 0.416667em
+     6px  = 0.5em
+     7px  = 0.583333em
+     8px  = 0.666667em
+     9px  = 0.75em
+    10px  = 0.833333em
+    11px  = 0.916667em
+    12px  = 1em
+
+IMPORTANT: Not all sizes are scaled with em units only padding. All borders and 
+background insets are still in pixels. Also any padding where it has to match up
+is being used to size a border should also be in pixels.
+
+ ******************************************************************************/
+
+/*******************************************************************************
+ *                                                                             *
+ * CSS Styles for core infrastructure bits.  The .root section provides the    *
+ * overall default colors used by the rest of the sections.                    *
+ *                                                                             *
+ ******************************************************************************/
+
+.root {
+    /***************************************************************************
+     *                                                                         *
+     * The main color palette from which the rest of the colors are derived.   *
+     *                                                                         *
+     **************************************************************************/
+
+    /* A light grey that is the base color for objects.  Instead of using
+     * -fx-base directly, the sections in this file will typically use -fx-color.
+     */
+    -fx-base: #ececec;
+
+    /* A very light grey used for the background of windows.  See also
+     * -fx-text-background-color, which should be used as the -fx-text-fill
+     * value for text painted on top of backgrounds colored with -fx-background.
+     */
+    -fx-background: derive(-fx-base,26.4%);
+
+    /* Used for the inside of text boxes, password boxes, lists, trees, and
+     * tables.  See also -fx-text-inner-color, which should be used as the
+     * -fx-text-fill value for text painted on top of backgrounds colored
+     * with -fx-control-inner-background.
+     */
+    -fx-control-inner-background: derive(-fx-base,80%);
+    /* Version of -fx-control-inner-background for alternative rows */
+    -fx-control-inner-background-alt: derive(-fx-control-inner-background,-2%);
+
+    /* One of these colors will be chosen based upon a ladder calculation
+     * that uses the brightness of a background color.  Instead of using these
+     * colors directly as -fx-text-fill values, the sections in this file should
+     * use a derived color to match the background in use.  See also:
+     *
+     * -fx-text-base-color for text on top of -fx-base, -fx-color, and -fx-body-color
+     * -fx-text-background-color for text on top of -fx-background
+     * -fx-text-inner-color for text on top of -fx-control-inner-color
+     * -fx-selection-bar-text for text on top of -fx-selection-bar
+     */
+    -fx-dark-text-color: black;
+    -fx-mid-text-color: #333;
+    -fx-light-text-color: white;
+
+    /* A bright blue for highlighting/accenting objects.  For example: selected
+     * text; selected items in menus, lists, trees, and tables; progress bars */
+    -fx-accent: #0096C9;
+
+    /* Default buttons color, this is similar to accent but more subtle */
+    -fx-default-button: #ABD8ED;
+
+    /* A bright blue for the focus indicator of objects. Typically used as the
+     * first color in -fx-background-color for the "focused" pseudo-class. Also
+     * typically used with insets of -1.4 to provide a glowing effect.
+     */
+    -fx-focus-color: #039ED3;
+    -fx-faint-focus-color: #039ED322;
+
+    /* The color that is used in styling controls. The default value is based
+     * on -fx-base, but is changed by pseudoclasses to change the base color.
+     * For example, the "hover" pseudoclass will typically set -fx-color to
+     * -fx-hover-base (see below) and the "armed" pseudoclass will typically
+     * set -fx-color to -fx-pressed-base.
+     */
+    -fx-color: -fx-base;
+
+    /* Chart Color Palette */
+    CHART_COLOR_1: #f3622d;
+    CHART_COLOR_2: #fba71b;
+    CHART_COLOR_3: #57b757;
+    CHART_COLOR_4: #41a9c9;
+    CHART_COLOR_5: #4258c9;
+    CHART_COLOR_6: #9a42c8;
+    CHART_COLOR_7: #c84164;
+    CHART_COLOR_8: #888888;
+    /* Chart Color Palette Semi-Transparent
+     * These are used by charts that need semi transparent versions of the above colors, such as BubbleChart. They
+     * are exactly the same colors as above just with alpha
+     *
+     * 20% opacity
+     */
+    CHART_COLOR_1_TRANS_20: #f3622d33;
+    CHART_COLOR_2_TRANS_20: #fba71b33;
+    CHART_COLOR_3_TRANS_20: #57b75733;
+    CHART_COLOR_4_TRANS_20: #41a9c933;
+    CHART_COLOR_5_TRANS_20: #4258c933;
+    CHART_COLOR_6_TRANS_20: #9a42c833;
+    CHART_COLOR_7_TRANS_20: #c8416433;
+    CHART_COLOR_8_TRANS_20: #88888833;
+    /* 70% opacity */
+    CHART_COLOR_1_TRANS_70: #f3622db3;
+    CHART_COLOR_2_TRANS_70: #fba71bb3;
+    CHART_COLOR_3_TRANS_70: #57b757b3;
+    CHART_COLOR_4_TRANS_70: #41a9c9b3;
+    CHART_COLOR_5_TRANS_70: #4258c9b3;
+    CHART_COLOR_6_TRANS_70: #9a42c8b3;
+    CHART_COLOR_7_TRANS_70: #c84164b3;
+    CHART_COLOR_8_TRANS_70: #888888b3;
+
+    /***************************************************************************
+     *                                                                         *
+     * Colors that are derived from the main color palette.                    *
+     *                                                                         *
+     **************************************************************************/
+
+    /* A little lighter than -fx-base and used as the -fx-color for the
+     * "hovered" pseudoclass state.
+     */
+    -fx-hover-base: ladder(
+        -fx-base,
+        derive(-fx-base,20%) 20%,
+        derive(-fx-base,30%) 35%,
+        derive(-fx-base,40%) 50%
+     );
+
+    /* A little darker than -fx-base and used as the -fx-color for the
+     * "armed" pseudoclass state.
+     *
+     * TODO: should this be renamed to -fx-armed-base?
+     */
+    -fx-pressed-base: derive(-fx-base,-6%);
+
+    /* The color to use for -fx-text-fill when text is to be painted on top of
+     * a background filled with the -fx-background color.
+     */
+    -fx-text-background-color: ladder(
+        -fx-background,
+        -fx-light-text-color 45%,
+        -fx-dark-text-color  46%,
+        -fx-dark-text-color  59%,
+        -fx-mid-text-color   60%
+    );
+
+    /* A little darker than -fx-color and used to draw boxes around objects such
+     * as progress bars, scroll bars, scroll panes, trees, tables, and lists.
+     */
+    -fx-box-border: ladder(
+        -fx-color,
+        black 20%,
+        derive(-fx-color,-15%) 30%
+    );
+
+    /* Darker than -fx-background and used to draw boxes around text boxes and
+     * password boxes.
+     */
+    -fx-text-box-border: ladder(
+        -fx-background,
+        black 10%,
+        derive(-fx-background, -15%) 30%
+    );
+
+    /* Lighter than -fx-background and used to provide a small highlight when
+     * needed on top of -fx-background. This is never a shadow in Modena but
+     * keep -fx-shadow-highlight-color name to be compatible with Caspian.
+     */
+    -fx-shadow-highlight-color: ladder(
+        -fx-background,
+        rgba(255,255,255,0.07) 0%,
+        rgba(255,255,255,0.07) 20%,
+        rgba(255,255,255,0.07) 70%,
+        rgba(255,255,255,0.7) 90%,
+        rgba(255,255,255,0.75) 100%
+      );
+
+    /* A gradient that goes from a little darker than -fx-color on the top to
+     * even more darker than -fx-color on the bottom.  Typically is the second
+     * color in the -fx-background-color list as the small thin border around
+     * a control. It is typically the same size as the control (i.e., insets
+     * are 0).
+     */
+    -fx-outer-border: derive(-fx-color,-23%);
+
+    /* A gradient that goes from a bit lighter than -fx-color on the top to
+     * a little darker at the bottom.  Typically is the third color in the
+     * -fx-background-color list as a thin highlight inside the outer border.
+     * Insets are typically 1.
+     */
+    -fx-inner-border: linear-gradient(to bottom,
+                ladder(
+                    -fx-color,
+                    derive(-fx-color,30%) 0%,
+                    derive(-fx-color,20%) 40%,
+                    derive(-fx-color,25%) 60%,
+                    derive(-fx-color,55%) 80%,
+                    derive(-fx-color,55%) 90%,
+                    derive(-fx-color,75%) 100%
+                ),
+                ladder(
+                    -fx-color,
+                    derive(-fx-color,20%) 0%,
+                    derive(-fx-color,10%) 20%,
+                    derive(-fx-color,5%) 40%,
+                    derive(-fx-color,-2%) 60%,
+                    derive(-fx-color,-5%) 100%
+                ));
+    -fx-inner-border-horizontal: linear-gradient(to right, derive(-fx-color,55%), derive(-fx-color,-5%));
+    -fx-inner-border-bottomup: linear-gradient(to top, derive(-fx-color,55%), derive(-fx-color,-5%));
+
+    /* A gradient that goes from a little lighter than -fx-color at the top to
+     * a little darker than -fx-color at the bottom and is used to fill the
+     * body of many controls such as buttons.
+     */
+    -fx-body-color: linear-gradient(to bottom,
+            ladder(
+                -fx-color,
+                derive(-fx-color,8%) 75%,
+                derive(-fx-color,10%) 80%
+            ),
+            derive(-fx-color,-8%));
+    -fx-body-color-bottomup: linear-gradient(to top, derive(-fx-color,10%) ,derive(-fx-color,-6%));
+    -fx-body-color-to-right: linear-gradient(to right, derive(-fx-color,10%) ,derive(-fx-color,-6%));
+
+    /* The color to use as -fx-text-fill when painting text on top of
+     * backgrounds filled with -fx-base, -fx-color, and -fx-body-color.
+     */
+    -fx-text-base-color: ladder(
+        -fx-color,
+        -fx-light-text-color 45%,
+        -fx-dark-text-color  46%,
+        -fx-dark-text-color  59%,
+        -fx-mid-text-color   60%
+    );
+
+    /* The color to use as -fx-text-fill when painting text on top of
+     * backgrounds filled with -fx-control-inner-background.
+     */
+    -fx-text-inner-color: ladder(
+        -fx-control-inner-background,
+        -fx-light-text-color 45%,
+        -fx-dark-text-color  46%,
+        -fx-dark-text-color  59%,
+        -fx-mid-text-color   60%
+    );
+
+    /* The color to use for small mark-like objects such as checks on check
+     * boxes, filled in circles in radio buttons, arrows on scroll bars, etc.
+     */
+    -fx-mark-color: ladder(
+        -fx-color,
+        white 30%,
+        derive(-fx-color,-63%) 31%
+    );
+
+    /* The small thin light "shadow" for mark-like objects. Typically used in
+     * conjunction with -fx-mark-color with an insets of 1 0 -1 0. */
+    -fx-mark-highlight-color: ladder(
+        -fx-color,
+        derive(-fx-color,80%) 60%,
+        white 70%
+    );
+
+    /* Background for items in list like things such as menus, lists, trees,
+     * and tables. */
+    -fx-selection-bar: -fx-accent;
+
+    /* Background color to use for selection of list cells etc. This is when
+     * the control doesn't have focus or the row of a previously selected item. */
+    -fx-selection-bar-non-focused: lightgrey;
+
+    /* The color to use as -fx-text-fill when painting text on top of
+     * backgrounds filled with -fx-selection-bar.
+     *
+     * TODO: this can be removed
+     */
+    -fx-selection-bar-text: -fx-text-background-color;
+
+    /* These are needed for Popup */
+    -fx-background-color: inherit;
+    -fx-background-radius: inherit;
+    -fx-background-insets: inherit;
+    -fx-padding: inherit;
+
+    /* The color to use in ListView/TreeView/TableView to indicate hover. */
+    -fx-cell-hover-color: #cce3f4;
+
+    /** Focus line for keyboard focus traversal on cell based controls */
+    -fx-cell-focus-inner-border: derive(-fx-selection-bar,30%);
+
+    /* The colors to use in Pagination */
+    -fx-page-bullet-border: #acacac;
+    -fx-page-indicator-hover-border: #accee5;
+
+    /***************************************************************************
+     *                                                                         *
+     * Set the default background color for the scene                          *
+     *                                                                         *
+     **************************************************************************/
+
+    -fx-background-color: -fx-background;
+}
+
+/* Make popups transparent */
+.root.popup {
+    -fx-background-color: transparent;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * Common Styles                                                               *
+ *                                                                             *
+ * These are styles that give a standard look to a whole range of controls     *
+ *                                                                             *
+ ******************************************************************************/
+
+/* ====   TEXT NODES IN CONTROLS   ========================================== */
+
+.text {
+    /* This adjusts text alignment within the bounds of text nodes so that
+       the text is always vertically centered within the bounds. Based on
+       the cap height of the text. */
+    -fx-bounds-type: logical_vertical_center;
+    /* Enable LCD text rendering */
+    -fx-font-smoothing-type: lcd;
+}
+
+/* ====   BUTTON LIKE THINGS   ============================================== */
+
+.button,
+.toggle-button,
+.radio-button > .radio,
+.check-box > .box,
+.menu-button,
+.choice-box,
+.color-picker.split-button > .color-picker-label,
+.combo-box-base,
+.combo-box-base:editable > .arrow-button {
+    -fx-background-color: -fx-shadow-highlight-color, -fx-outer-border, -fx-inner-border, -fx-body-color;
+    -fx-background-insets: 0 0 -1 0, 0, 1, 2;
+    -fx-background-radius: 3px, 3px, 2px, 1px;
+    -fx-padding: 0.333333em 0.666667em 0.333333em 0.666667em; /* 4 8 4 8 */
+    -fx-text-fill: -fx-text-base-color;
+    -fx-alignment: CENTER;
+    -fx-content-display: LEFT;
+}
+.menu-button > .label {
+    -fx-alignment: CENTER_LEFT;
+}
+.button:hover,
+.toggle-button:hover,
+.radio-button:hover > .radio,
+.check-box:hover > .box,
+.menu-button:hover,
+.split-menu-button > .label:hover,
+.split-menu-button > .arrow-button:hover,
+.slider .thumb:hover,
+.scroll-bar > .thumb:hover,
+.scroll-bar > .increment-button:hover, 
+.scroll-bar > .decrement-button:hover,
+.choice-box:hover,
+.color-picker.split-button > .arrow-button:hover,
+.color-picker.split-button > .color-picker-label:hover,
+.combo-box-base:hover,
+.combo-box-base:editable > .arrow-button:hover,
+.tab-pane > .tab-header-area > .control-buttons-tab > .container > .tab-down-button:hover {
+    -fx-color: -fx-hover-base;
+}
+.button:armed,
+.toggle-button:armed,
+.radio-button:armed > .radio,
+.check-box:armed .box,
+.menu-button:armed,
+.split-menu-button:armed > .label,
+.split-menu-button > .arrow-button:pressed,
+.split-menu-button:showing > .arrow-button,
+.slider .thumb:pressed,
+.scroll-bar > .thumb:pressed,
+.scroll-bar > .increment-button:pressed, 
+.scroll-bar > .decrement-button:pressed,
+.choice-box:showing,
+.combo-box-base:showing,
+.combo-box-base:editable:showing > .arrow-button,
+.tab-pane > .tab-header-area > .control-buttons-tab > .container > .tab-down-button:pressed {
+    -fx-color: -fx-pressed-base;
+}
+.button:focused,
+.toggle-button:focused,
+.radio-button:focused > .radio,
+.check-box:focused > .box,
+.menu-button:focused,
+.choice-box:focused,
+.color-picker.split-button:focused > .color-picker-label,
+.combo-box-base:focused,
+.slider:focused .thumb {
+    -fx-background-color: -fx-focus-color, -fx-inner-border, -fx-body-color, -fx-faint-focus-color, -fx-body-color;
+    -fx-background-insets: -0.2, 1, 2, -1.4, 2.6;
+    -fx-background-radius: 3, 2, 1, 4, 1;
+}
+
+/* ====   DISABLED THINGS   ================================================= */
+
+.label:disabled,
+.button:disabled,
+.toggle-button:disabled,
+.radio-button:disabled,
+.check-box:disabled,
+.hyperlink:disabled,
+.menu-button:disabled,
+.split-menu-button:disabled,
+.slider:disabled,
+.scroll-bar:disabled,
+.scroll-pane:disabled,
+.progress-bar:disabled,
+.progress-indicator:disabled,
+.text-input:disabled,
+.choice-box:disabled,
+.combo-box-base:disabled,
+.date-cell:disabled > *, /* This is set on children so border is not affected. */
+.list-view:disabled,
+.tree-view:disabled,
+.table-view:disabled,
+.tree-table-view:disabled,
+.tab-pane:disabled,
+.titled-pane:disabled > .title,
+.accordion:disabled > .titled-pane > .title,
+.tab-pane > .tab-header-area > .headers-region > .tab:disabled,
+.menu:disabled,
+.menu-item:disabled > .label,
+.menu-item:disabled,
+.list-cell:filled:selected:focused:disabled,
+.list-cell:filled:selected:disabled,
+.tree-cell:filled:selected:focused:disabled,
+.tree-cell:filled:selected:disabled,
+.tree-cell > .tree-disclosure-node:disabled,
+.tree-table-row-cell > .tree-disclosure-node:disabled,
+.table-row-cell:selected:disabled,
+.tree-table-row-cell:selected:disabled,
+.table-cell:selected:disabled,
+.tree-table-cell:selected:disabled {
+    -fx-opacity: 0.4;
+}
+
+/* ====   MNEMONIC THINGS   ================================================= */
+
+.mnemonic-underline {
+    -fx-stroke: transparent;
+}
+
+.titled-pane:show-mnemonics > .mnemonic-underline,
+.label:show-mnemonics > .mnemonic-underline,
+.context-menu:show-mnemonics > .mnemonic-underline,
+.menu:show-mnemonics > .mnemonic-underline,
+.menu-bar:show-mnemonics > .mnemonic-underline,
+.menu-item:show-mnemonics > .mnemonic-underline,
+.button:show-mnemonics > .mnemonic-underline,
+.toggle-button:show-mnemonics > .mnemonic-underline,
+.radio-button:show-mnemonics > .mnemonic-underline,
+.check-box:show-mnemonics > .mnemonic-underline,
+.hyperlink:show-mnemonics > .mnemonic-underline,
+.split-menu-button:show-mnemonics > .mnemonic-underline,
+.menu-button:show-mnemonics > .mnemonic-underline {
+    -fx-stroke: -fx-text-base-color;
+} 
+
+/* ====   MARKS   =========================================================== */
+
+.radio-button:selected > .radio > .dot,
+.check-box:selected > .box > .mark,
+.check-box:indeterminate  > .box > .mark {
+    -fx-background-color: -fx-mark-highlight-color, -fx-mark-color;
+    -fx-background-insets: 1 0 -1 0, 0;
+}
+
+/* ====   ARROWS   ========================================================== */
+
+.menu-button > .arrow-button > .arrow,
+.split-menu-button > .arrow-button > .arrow {
+    -fx-background-color: -fx-mark-highlight-color, -fx-mark-color;
+    -fx-background-insets: 0 0 -1 0, 0;
+    -fx-padding: 0.25em;
+    -fx-shape: "M 0 -3.5 v 7 l 4 -3.5 z";
+}
+.choice-box > .open-button > .arrow,
+.menu-button:openvertically > .arrow-button > .arrow,
+.split-menu-button:openvertically > .arrow-button > .arrow,
+.combo-box-base > .arrow-button > .arrow,
+.web-view .form-select-button .arrow,
+.tab-pane > .tab-header-area > .control-buttons-tab > .container > .tab-down-button > .arrow  {
+    -fx-background-color: -fx-mark-highlight-color, -fx-mark-color;
+    -fx-background-insets: 0 0 -1 0, 0;
+    -fx-padding: 0.166667em 0.333333em 0.166667em 0.333333em; /* 2 4 2 4 */
+    -fx-shape: "M 0 0 h 7 l -3.5 4 z";
+}
+
+/* ====   CHOICE BOX LIKE THINGS   ========================================== */
+
+.choice-box,
+.menu-button,
+.combo-box-base {
+    -fx-padding: 0;
+}
+.choice-box > .label,
+.menu-button > .label,
+.color-picker > .label {
+    -fx-padding: 0.333333em 0.666667em 0.333333em 0.666667em; /* 4 8 4 8 */
+    -fx-text-fill: -fx-text-base-color;
+}
+.choice-box > .open-button,
+.menu-button > .arrow-button {
+    -fx-padding: 0.5em 0.667em 0.5em 0.0em; /* 6 8 6 0 */
+}
+
+/* ====   BOX LIKE THINGS   ================================================= */
+
+.scroll-pane,
+.split-pane,
+.list-view,
+.tree-view,
+.table-view, 
+.tree-table-view,
+.html-editor {
+    -fx-background-color: -fx-box-border, -fx-control-inner-background;
+    -fx-background-insets: 0, 1;
+    -fx-padding: 1;
+}
+.scroll-pane:focused,
+.split-pane:focused,
+.list-view:focused,
+.tree-view:focused,
+.table-view:focused,
+.tree-table-view:focused,
+.html-editor:focused {
+    -fx-background-color: -fx-faint-focus-color, -fx-focus-color, -fx-control-inner-background; 
+    -fx-background-insets: -1.4, -0.3, 1;
+    -fx-background-radius: 2, 0, 0;
+}
+/* ones with grey -fx-background not lighter -fx-control-inner-background */
+.scroll-pane,
+.split-pane {
+    -fx-background-color: -fx-box-border, -fx-background;
+}
+.scroll-pane:focused,
+.split-pane:focused {
+    -fx-background-color: -fx-faint-focus-color, -fx-focus-color, -fx-background; 
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * Label                                                                       *
+ *                                                                             *
+ ******************************************************************************/
+
+.label {
+    -fx-text-fill: -fx-text-background-color;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * Button & ToggleButton                                                       *
+ *                                                                             *
+ ******************************************************************************/
+
+/* ====   DEFAULT   ========================================================= */
+
+.button:default {
+    -fx-base: -fx-default-button;
+}
+
+/* ====   WEB BUTTONS   ===================================================== */
+
+.web-view .form-select-button {
+    -fx-background-radius: 2, 2, 1, 0;
+    -fx-background-insets: 2 2 1 2, 2, 3, 4;
+}
+
+/* ====   PILL BUTTONS   ==================================================== */
+
+.button.left-pill,
+.toggle-button.left-pill {
+    -fx-background-radius: 3 0 0 3, 3 0 0 3, 2 0 0 2, 1 0 0 1;
+    -fx-background-insets: 0 0 -1 0, 0, 1, 2;
+    -fx-padding: 0.333333em 0.666667em 0.333333em 0.75em; /* 4 8 4 9 */
+}
+.button.center-pill,
+.toggle-button.center-pill {
+    -fx-background-radius: 0;
+    -fx-background-insets: 0 0 -1 0, 0 0 0 0, 1 1 1 0, 2 2 2 1 ;
+}
+.button.right-pill,
+.toggle-button.right-pill {
+    -fx-background-radius: 0 3 3 0, 0 3 3 0, 0 2 2 0, 0 1 1 0;
+    -fx-background-insets: 0 0 -1 0, 0, 1 1 1 0, 2 2 2 1 ;
+}
+.button.left-pill:focused,
+.toggle-button.left-pill:focused {
+    -fx-background-insets: -0.2 0 -0.2 -0.2, 1, 2, -1.4 0 -1.4 -1.4, 2.6;
+    -fx-background-radius: 3 0 0 3, 2 0 0 2, 1 0 0 1, 4 0 0 4, 1 0 0 1;
+}
+.button.center-pill:focused,
+.toggle-button.center-pill:focused {
+    -fx-background-insets: -0.2 0 -0.2 -1, 1 1 1 0, 2 2 2 1, -1.4 0 -1.4 -1, 2.6 2.6 2.6 1.6;
+    -fx-background-radius: 0, 0, 0, 0, 0;
+}
+.button.right-pill:focused,
+.toggle-button.right-pill:focused {
+    -fx-background-insets: -0.2 -0.2 -0.2 -1, 1 1 1 0, 2 2 2 1, -1.4 -1.4 -1.4 -1, 2.6 2.6 2.6 1.6;
+    -fx-background-radius: 0 3 3 0, 0 2 2 0, 0 1 1 0, 0 4 4 0, 0 1 1 0;
+}
+.toggle-button:selected.left-pill:focused {
+    -fx-background-insets: -0.2 0 -0.2 -0.2, 1, -1.4 0 -1.4 -1.4, 2.6;
+    -fx-background-radius: 3 0 0 3, 2 0 0 2, 4 0 0 4, 0;
+}
+.toggle-button:selected.center-pill:focused {
+    -fx-background-insets: -0.2 0 -0.2 -1, 1 1 1 0, -1.4 0 -1.4 -1, 2.6 2.6 2.6 1.6;
+    -fx-background-radius: 0, 0, 0, 0;
+}
+.toggle-button:selected.right-pill:focused {
+    -fx-background-insets: -0.2 -0.2 -0.2 -1, 1 1 1 0, -1.4 -1.4 -1.4 -1, 2.6 2.6 2.6 1.6;
+    -fx-background-radius: 0 3 3 0, 0 2 2 0, 0 4 4 0, 0;
+}
+
+/* ====   SELECTED TOGGLE   ================================================= */
+
+.toggle-button:selected {
+        -fx-background-color:
+            -fx-shadow-highlight-color,
+            linear-gradient(to bottom, derive(-fx-outer-border, -20%), -fx-outer-border),
+            linear-gradient(to bottom, 
+                    derive(-fx-color, -22%) 0%,
+                    derive(-fx-color, -13%) 20%,
+                    derive(-fx-color, -11%) 50%);
+    -fx-background-insets: 0 0 -1 0, 0, 1;
+}
+.toggle-button:selected:focused {
+    -fx-background-color:
+        -fx-focus-color,
+        linear-gradient(to bottom,
+            derive(-fx-color, -22%) 0%,
+            derive(-fx-color, -13%) 20%,
+            derive(-fx-color, -11%) 50%),
+        -fx-faint-focus-color,
+        linear-gradient(to bottom,
+            derive(-fx-color, -22%) 0%,
+            derive(-fx-color, -13%) 20%,
+            derive(-fx-color, -11%) 50%);
+    -fx-background-insets: -0.2, 1, -1.4, 2.6;
+    -fx-background-radius: 3, 2, 4, 0;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * RadioButton                                                                 *
+ *                                                                             *
+ ******************************************************************************/
+
+.radio-button {
+    -fx-label-padding: 0.0em 0.0em 0.0em 0.416667em; /* 0 0 0 5 */
+    -fx-text-fill: -fx-text-background-color;
+}
+.radio-button > .radio,
+.radio-button:focused > .radio  {
+   -fx-background-radius: 1.0em; /* large value to make sure this remains circular */
+   -fx-padding: 0.333333em; /* 4 -- padding from outside edge to the inner black dot */
+}
+.radio-button > .radio > .dot {
+   -fx-background-color: transparent;
+   -fx-background-radius: 1.0em; /* large value to make sure this remains circular */
+   -fx-padding: 0.333333em; /* 4 -- radius of the inner black dot when selected */
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * CheckBox                                                                    *
+ *                                                                             *
+ ******************************************************************************/
+
+.check-box {
+    -fx-label-padding: 0.0em 0.0em 0.0em 0.416667em; /* 0 0 0 5 */
+    -fx-text-fill: -fx-text-background-color;
+}
+.check-box > .box {
+    -fx-background-radius: 3, 2, 1;
+    -fx-padding: 0.166667em 0.166667em 0.25em 0.25em; /* 2 2 3 3 */
+}
+.check-box > .box > .mark {
+    -fx-background-color: null;
+    -fx-padding: 0.416667em 0.416667em 0.5em 0.5em; /* 5 5 6 6 */
+    -fx-shape: "M-0.25,6.083c0.843-0.758,4.583,4.833,5.75,4.833S14.5-1.5,15.917-0.917c1.292,0.532-8.75,17.083-10.5,17.083C3,16.167-1.083,6.833-0.25,6.083z";
+}
+.check-box:indeterminate > .box {
+    -fx-padding: 0; 
+}
+.check-box:indeterminate  > .box > .mark {
+    -fx-shape: "M0,0H10V2H0Z";
+    -fx-scale-shape: false;
+    -fx-padding: 0.666667em; /* 16x16 = 8+8 */
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * Hyperlink                                                                   *
+ *                                                                             *
+ ******************************************************************************/
+
+.hyperlink {
+    -fx-padding: 0.166667em 0.25em 0.166667em 0.25em; /* 2 3 2 3 */
+    -fx-cursor: hand;
+    -fx-content-display: LEFT;
+    -fx-text-fill: -fx-text-background-color;
+    -fx-border-color: transparent;
+    -fx-border-width: 1px;
+}
+.hyperlink,
+.hyperlink:hover,
+.hyperlink:hover:visited {
+    -fx-text-fill: -fx-accent;
+}
+.hyperlink:armed,
+.hyperlink:visited,
+.hyperlink:hover:armed {
+    -fx-text-fill: -fx-text-background-color;
+}
+.hyperlink:hover,
+.hyperlink:visited,
+.hyperlink:hover:visited {
+    -fx-underline: true;
+}
+.hyperlink:visited:armed {
+    -fx-underline: false;
+}
+.hyperlink:focused {
+    -fx-border-color: -fx-focus-color;
+    -fx-border-style: segments(0.166667em, 0.166667em);
+    -fx-border-width: 1px;
+}
+.hyperlink:show-mnemonics > .mnemonic-underline {
+    -fx-stroke: -fx-text-fill;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * SplitMenuButton                                                             *
+ *                                                                             *
+ ******************************************************************************/
+
+.split-menu-button {
+    -fx-background-color: -fx-shadow-highlight-color, -fx-outer-border; 
+    -fx-background-insets: 0 0 -1 0, 0;
+    -fx-background-radius: 3, 3;
+    -fx-padding: 0;
+}
+.split-menu-button > .label {
+    -fx-text-fill: -fx-text-base-color;
+    -fx-background-color: -fx-inner-border, -fx-body-color; 
+    -fx-background-insets: 1 0 1 1, 2 1 2 2;
+    -fx-background-radius: 2 0 0 2, 1 0 0 1;
+    -fx-padding: 0.333333em 0.667em 0.333333em 0.667em; /* 4 8 4 8 */
+}
+.split-menu-button > .arrow-button {
+    -fx-background-color: -fx-inner-border, -fx-body-color; 
+    -fx-background-insets: 1, 2;
+    -fx-background-radius: 0 2 2 0, 0 1 1 0;
+    -fx-padding: 0.5em 0.667em 0.5em 0.667em; /* 6 8 6 8 */
+}
+.split-menu-button:focused {
+    -fx-background-color: -fx-focus-color;
+    -fx-background-insets: -0.2;
+    -fx-background-radius: 3;
+}
+.split-menu-button:focused > .label {
+    -fx-background-color: -fx-inner-border, -fx-body-color, -fx-faint-focus-color, -fx-body-color; 
+    -fx-background-insets: 1 0 1 1, 2 1 2 2, -1.4 0 -1.4 -1.4, 2.6 1.6 2.6 2.6;
+    -fx-background-radius: 2 0 0 2, 1 0 0 1, 4 0 0 4, 0;
+}
+.split-menu-button:focused > .arrow-button {
+    -fx-background-color: -fx-inner-border, -fx-body-color, -fx-faint-focus-color, -fx-body-color; 
+    -fx-background-insets: 1, 2, -1.4, 2.6;
+    -fx-background-radius: 0 2 2 0, 0 1 1 0, 0 4 4 0, 0;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * ToolBar                                                                     *
+ *                                                                             *
+ ******************************************************************************/
+
+.tool-bar:vertical { /* left */
+    -fx-background-color:
+        -fx-outer-border,
+        linear-gradient(to right, derive(-fx-base,0%) 0%, derive(-fx-base,10%) 50%, derive(-fx-base,0%) 100%);
+    -fx-background-insets: 0, 0 0 0 1;
+    -fx-padding: 0.5em 0.416667em 0.5em 0.416667em; /* 6 5 6 5 */
+    -fx-spacing: 0.333em; /* 4 */
+    -fx-alignment: TOP_LEFT;
+}
+.tool-bar { /* top */
+    TOP-COLOR: ladder(
+        -fx-base,
+        derive(-fx-base,0%) 0%,
+        derive(-fx-base,46%) 100%
+    );
+    -fx-background-color:
+        linear-gradient(to bottom, derive(TOP-COLOR,25%) 0%, -fx-outer-border 90%),
+        linear-gradient(to bottom, TOP-COLOR 2%, derive(-fx-base,-2.1%) 95%);
+    -fx-background-insets: 0 0 0 0, 1 0 1 0;
+    -fx-padding: 0.416667em 0.5em 0.416667em 0.5em; /* 5 6  5 6 */
+    -fx-spacing: 0.333em; /* 4 */
+    -fx-alignment: CENTER_LEFT;
+}
+.tool-bar:vertical.right {
+    -fx-background-insets: 0, 0 1 0 0;
+}
+.tool-bar.bottom {
+    -fx-background-color:
+        -fx-outer-border,
+        derive(TOP-COLOR,25%),
+        linear-gradient(to bottom, TOP-COLOR 2%, derive(-fx-base,-2.1%) 95%);
+    -fx-background-insets: 0, 1 0 0 0, 2 0 0 0;
+}
+.tool-bar > .container > .separator {
+    -fx-orientation: vertical;
+}
+.tool-bar:vertical > .container > .separator {
+    -fx-orientation: horizontal;    
+}
+.tool-bar-overflow-button {
+    -fx-padding: 0 0.75em 0 0 ;
+}
+.tool-bar:vertical > .tool-bar-overflow-button {
+    -fx-padding: 0 0 0.75em 0 ;
+}
+.tool-bar-overflow-button > .arrow {
+    -fx-background-color: -fx-mark-highlight-color, -fx-mark-color;
+    -fx-background-insets: 1 0 -1 0, 0;
+    -fx-padding: 0.666667em 0.916667em 0em 0em; /* 8 11 0 0 */
+    -fx-shape: "M337.273,297.622l-0.016,1.069l2.724,2.639l-2.723,2.628l0.015,1.048h0.881l3.81-3.685l-3.788-3.699H337.273z M343.783,297.622h-0.902l-0.015,1.069l2.724,2.639l-2.724,2.628l0.015,1.048h0.882l3.809-3.685L343.783,297.622z" ;
+}
+
+.tool-bar-overflow-button:focused > .arrow {
+    -fx-background-color: -fx-mark-highlight-color, derive(-fx-accent, -15%);
+    -fx-background-insets: 1 0 -1 0, 0;
+}
+
+.tool-bar-overflow-button:hover > .arrow {
+    -fx-background-color: -fx-mark-highlight-color, derive(-fx-hover-base, -35%);
+    -fx-background-insets: 1 0 -1 0, 0;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * Slider                                                                      *
+ *                                                                             *
+ ******************************************************************************/
+
+.slider .thumb {
+    -fx-background-color: 
+        linear-gradient(to bottom, derive(-fx-text-box-border, -20%), derive(-fx-text-box-border, -30%)),
+        -fx-inner-border,
+        -fx-body-color;
+    -fx-background-insets: 0, 1, 2;
+    -fx-background-radius: 1.0em; /* makes sure this remains circular */
+    -fx-padding: 0.583333em;  /* 7 */
+    -fx-effect: dropshadow(two-pass-box , rgba(0, 0, 0, 0.1), 5, 0.0 , 0, 2);
+}
+.slider:focused .thumb {
+    -fx-background-radius: 1.0em; /* makes sure this remains circular */
+}
+.slider .track {
+      -fx-background-color: 
+          -fx-shadow-highlight-color,
+          linear-gradient(to bottom, derive(-fx-text-box-border, -10%), -fx-text-box-border),
+          linear-gradient(to bottom, 
+            derive(-fx-control-inner-background, -9%),
+            derive(-fx-control-inner-background, 0%),
+            derive(-fx-control-inner-background, -5%),
+            derive(-fx-control-inner-background, -12%)
+          );
+    -fx-background-insets: 0 0 -1 0, 0, 1;
+    -fx-background-radius: 0.25em, 0.25em, 0.166667em; /* 3 3 2 */
+    -fx-padding: 0.25em; /* 3 */
+}
+.slider:vertical .track {
+    -fx-background-color: 
+          -fx-shadow-highlight-color,
+          -fx-text-box-border,
+          linear-gradient(to right, 
+            derive(-fx-control-inner-background, -9%),
+            -fx-control-inner-background,
+            derive(-fx-control-inner-background, -9%)
+          );
+}
+.slider .axis {
+    -fx-tick-label-fill: derive(-fx-text-background-color, 30%);
+    -fx-tick-length: 5px;
+    -fx-minor-tick-length: 3px;
+    -fx-border-color: null;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * ScrollBar                                                                   *
+ *                                                                             *
+ ******************************************************************************/
+
+.scroll-bar:horizontal {
+    -fx-background-color: derive(-fx-box-border,30%), linear-gradient(to bottom, derive(-fx-base,-3%), derive(-fx-base,5%) 50%, derive(-fx-base,-3%));
+    -fx-background-insets: 0, 1 0 1 0;
+}
+.scroll-bar:vertical {
+    -fx-background-color: derive(-fx-box-border,30%), linear-gradient(to right, derive(-fx-base,-3%), derive(-fx-base,5%) 50%, derive(-fx-base,-3%));
+    -fx-background-insets: 0, 0 1 0 1;
+}
+.scroll-bar:focused {
+    -fx-background-color: 
+        -fx-focus-color,
+        linear-gradient(to bottom, derive(-fx-base,-3%), derive(-fx-base,5%) 50%, derive(-fx-base,-3%)),
+        -fx-faint-focus-color,
+        linear-gradient(to bottom, derive(-fx-base,-3%), derive(-fx-base,5%) 50%, derive(-fx-base,-3%));
+    -fx-background-insets: -0.2, 1, -1.4, 2.6;
+}
+.scroll-bar:vertical:focused {
+    -fx-background-color: 
+        -fx-focus-color,
+        linear-gradient(to right, derive(-fx-base,-3%), derive(-fx-base,5%) 50%, derive(-fx-base,-3%)),
+        -fx-faint-focus-color,
+        linear-gradient(to right, derive(-fx-base,-3%), derive(-fx-base,5%) 50%, derive(-fx-base,-3%));
+}
+.scroll-bar > .thumb {
+    -fx-background-color: -fx-outer-border, -fx-inner-border, -fx-body-color; 
+    /*-fx-background-insets: 1, 2, 3;*/
+    -fx-background-insets: 2, 3, 4;
+    /*-fx-background-radius: 0.416667em, 0.333333em, 0.25em; *//* 5, 4,3 */
+    -fx-background-radius: 3, 2, 1;
+}
+.scroll-bar:vertical > .thumb {
+    -fx-background-color: -fx-outer-border, -fx-inner-border, -fx-body-color-to-right; 
+}
+.scroll-bar > .increment-button, 
+.scroll-bar > .decrement-button {
+    -fx-background-color: -fx-outer-border, -fx-inner-border, -fx-body-color;     
+    -fx-color: transparent;
+    -fx-padding: 0.25em; /* 3px */
+}
+.scroll-bar:horizontal > .increment-button,
+.scroll-bar:horizontal > .decrement-button {
+    -fx-background-insets: 2 1 2 1, 3 2 3 2, 4 3 4 3;
+}
+.scroll-bar:vertical > .increment-button,
+.scroll-bar:vertical > .decrement-button {
+    -fx-background-insets: 1 2 1 2, 2 3 2 3, 3 4 3 4;
+}
+.scroll-bar > .increment-button > .increment-arrow,
+.scroll-bar > .decrement-button > .decrement-arrow {
+    -fx-background-color: -fx-mark-highlight-color,derive(-fx-base,-45%);
+}
+.scroll-bar > .increment-button:hover > .increment-arrow,
+.scroll-bar > .decrement-button:hover > .decrement-arrow {
+    -fx-background-color: -fx-mark-highlight-color,derive(-fx-base,-50%);
+}
+.scroll-bar > .increment-button:pressed > .increment-arrow,
+.scroll-bar > .decrement-button:pressed > .decrement-arrow {
+    -fx-background-color: -fx-mark-highlight-color,derive(-fx-base,-55%);
+}
+.scroll-bar:horizontal > .decrement-button > .decrement-arrow {
+    -fx-padding: 0.333em 0.167em 0.333em 0.167em; /* 4 2 4 2 */
+    -fx-shape: "M5.997,5.072L5.995,6.501l-2.998-4l2.998-4l0.002,1.43l-1.976,2.57L5.997,5.072z";
+    -fx-effect: dropshadow(two-pass-box , -fx-shadow-highlight-color, 1, 0.0 , 0, 1.4);
+    /*-fx-background-insets: 2 0 -2 0, 0;*/
+}
+.scroll-bar:horizontal > .increment-button > .increment-arrow {
+    -fx-padding: 0.333em 0.167em 0.333em 0.167em; /* 4 2 4 2 */
+    -fx-shape: "M2.998-0.07L3-1.499l2.998,4L3,6.501l-0.002-1.43l1.976-2.57L2.998-0.07z";
+    -fx-effect: dropshadow(two-pass-box , -fx-shadow-highlight-color, 1, 0.0 , 0, 1.4);
+    /*-fx-background-insets: 2 0 -2 0, 0;*/
+}
+.scroll-bar:vertical > .decrement-button > .decrement-arrow {
+    -fx-padding: 0.167em 0.333em 0.167em 0.333em; /* 2 4 2 4 */
+    -fx-shape: "M1.929,4L0.5,3.998L4.5,1l4,2.998L7.07,4L4.5,2.024L1.929,4z";
+    -fx-effect: dropshadow(two-pass-box , -fx-shadow-highlight-color, 1, 0.0 , 0, 1.4);
+    /*-fx-background-insets: 2 0 -2 0, 0;*/
+}
+.scroll-bar:vertical > .increment-button > .increment-arrow {
+    -fx-padding: 0.167em 0.333em 0.167em 0.333em; /* 2 4 2 4 */
+    -fx-shape: "M7.071,1L8.5,1.002L4.5,4l-4-2.998L1.93,1L4.5,2.976L7.071,1z";
+    -fx-effect: dropshadow(two-pass-box , -fx-shadow-highlight-color, 1, 0.0 , 0, 1.4);
+    /*-fx-background-insets: 2 0 -2 0, 0;*/
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * ScrollPane                                                                  *
+ *                                                                             *
+ ******************************************************************************/
+.scroll-pane > .viewport {
+    -fx-background-color: -fx-background;
+}
+.scroll-pane > .scroll-bar:horizontal {
+    -fx-background-insets: 0 1 1 1, 1;
+    -fx-padding: 0 1 0 1;
+}
+.scroll-pane > .scroll-bar:horizontal > .increment-button,
+.scroll-pane > .scroll-bar:horizontal > .decrement-button {
+    -fx-padding: 0.166667em 0.25em 0.25em  0.25em; /* 2 3 3 3 */
+}
+.scroll-pane > .scroll-bar:vertical > .increment-button,
+.scroll-pane > .scroll-bar:vertical > .decrement-button {
+    -fx-padding: 0.25em 0.25em 0.25em 0.166667em; /* 3 3 3 2 */
+}
+.scroll-pane > .scroll-bar:vertical {
+    -fx-background-insets: 1 1 1 0, 1;
+    -fx-padding: 1 0 1 0;
+}
+.scroll-pane > .corner {
+    -fx-background-color: derive(-fx-base,-1%);
+    -fx-background-insets: 0 1 1 0;
+}
+/* new styleclass for edge to edge scrollpanes that don't want to draw a border */
+.scroll-pane.edge-to-edge,
+.tab-pane > * > .scroll-pane {
+    -fx-background-color: -fx-background;
+    -fx-background-insets: 0;
+    -fx-padding: 0;
+}
+.scroll-pane.edge-to-edge > .scroll-bar,
+.tab-pane > * > .scroll-pane > .scroll-bar,
+.titled-pane > * > * > .scroll-pane > .scroll-bar {
+    -fx-background-insets: 0;
+    -fx-padding: 0;
+}
+.scroll-pane.edge-to-edge > .scroll-bar > .increment-button, 
+.scroll-pane.edge-to-edge > .scroll-bar > .decrement-button,
+.tab-pane > * > .scroll-pane > .scroll-bar > .increment-button, 
+.tab-pane > * > .scroll-pane > .scroll-bar > .decrement-button,
+.titled-pane > * > * > .scroll-pane > .scroll-bar > .increment-button,
+.titled-pane > * > * > .scroll-pane > .scroll-bar > .decrement-button {
+    -fx-padding: 0.25em; /* 3px */
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * Separator                                                                   *
+ *                                                                             *
+ ******************************************************************************/
+
+.separator:horizontal .line {
+    -fx-border-color: -fx-text-box-border transparent transparent transparent,
+        -fx-shadow-highlight-color transparent transparent transparent;
+    -fx-border-insets: 0, 1 0 0 0;
+}
+.separator:vertical .line {
+    -fx-border-color: transparent transparent transparent -fx-shadow-highlight-color,
+        transparent transparent transparent -fx-text-box-border;
+    -fx-border-width: 3, 1;
+    -fx-border-insets: 0, 0 0 0 1;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * ProgressBar                                                                 *
+ *                                                                             *
+ ******************************************************************************/
+
+.progress-bar {
+    -fx-indeterminate-bar-length: 60;
+    -fx-indeterminate-bar-escape: true;
+    -fx-indeterminate-bar-flip: true;
+    -fx-indeterminate-bar-animation-time: 2;
+}
+.progress-bar > .bar {
+    -fx-background-color: linear-gradient(to bottom, derive(-fx-accent, -7%), derive(-fx-accent, 0%), derive(-fx-accent, -3%), derive(-fx-accent, -9%) );
+    -fx-background-insets: 3 3 4 3;
+    /*-fx-background-radius: 0.583em; *//* 7 */
+    -fx-background-radius: 2;
+    -fx-padding: 0.75em;
+}
+.progress-bar:indeterminate > .bar {
+    -fx-background-color: linear-gradient(to left, transparent, -fx-accent);
+}
+.progress-bar > .track {
+      -fx-background-color: 
+          -fx-shadow-highlight-color,
+          linear-gradient(to bottom, derive(-fx-text-box-border, -10%), -fx-text-box-border),
+          linear-gradient(to bottom, 
+            derive(-fx-control-inner-background, -7%),
+            derive(-fx-control-inner-background, 0%),
+            derive(-fx-control-inner-background, -3%),
+            derive(-fx-control-inner-background, -9%)
+          );
+    -fx-background-insets: 0, 0 0 1 0, 1 1 2 1;
+    -fx-background-radius: 4, 3, 2; /* 10, 9, 8 */
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * ProgressIndicator                                                           *
+ *                                                                             *
+ ******************************************************************************/
+
+.progress-indicator {
+    -fx-indeterminate-segment-count: 12;
+    -fx-spin-enabled: true;
+}
+.progress-indicator > .determinate-indicator > .indicator {
+    -fx-background-color: -fx-box-border,
+        radial-gradient(center 50% 50%, radius 50%, -fx-control-inner-background 70%, derive(-fx-control-inner-background, -9%) 100%), 
+        -fx-control-inner-background;
+    -fx-background-insets: 0, 1, 5 2 1 2;
+    -fx-padding: 0.166667em; /* 2px */
+}
+.progress-indicator > .determinate-indicator > .progress {
+    -fx-background-color: -fx-accent;
+    -fx-padding: 0.083333em; /* 1px */
+}
+.progress-indicator > .determinate-indicator > .tick {
+    -fx-background-color: white;
+    -fx-background-insets: 0;
+    -fx-padding: 0.666667em; /* 8 */
+    -fx-shape: "M-0.25,6.083c0.843-0.758,4.583,4.833,5.75,4.833S14.5-1.5,15.917-0.917c1.292,0.532-8.75,17.083-10.5,17.083C3,16.167-1.083,6.833-0.25,6.083z";
+}
+.progress-indicator > .percentage {
+    -fx-font-size: 0.916667em; /* 11pt - 1 less than the default font */
+    -fx-fill: -fx-text-background-color;
+}
+.progress-indicator:indeterminate .segment {
+    -fx-background-color: -fx-accent;
+}
+.progress-indicator:indeterminate .segment0 {
+    -fx-shape:"M41.98 14.74 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment1 {
+    -fx-shape:"M33.75 6.51 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment2 {
+    -fx-shape:"M22.49 3.5 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment3 {
+    -fx-shape:"M11.24 6.51 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment4 {
+    -fx-shape:"M3.01 14.74 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment5 {
+    -fx-shape:"M0.0 26.0 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment6 {
+    -fx-shape:"M3.01 37.25 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment7 {
+    -fx-shape:"M11.25 45.48 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment8 {
+    -fx-shape:"M22.5 48.5 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment9 {
+    -fx-shape:"M33.75 45.48 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment10 {
+    -fx-shape:"M41.98 37.25 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment11 {
+     -fx-shape:"M45.0 26.0 a3.5,3.5 0 1,1 0,1 Z";
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * Text COMMON                                                                 *
+ *                                                                             *
+ ******************************************************************************/
+
+.text-input {
+    -fx-text-fill: -fx-text-inner-color;
+    -fx-highlight-fill: derive(-fx-control-inner-background,-20%);
+    -fx-highlight-text-fill: -fx-text-inner-color;
+    -fx-prompt-text-fill: derive(-fx-control-inner-background,-30%);
+    -fx-background-color: linear-gradient(to bottom, derive(-fx-text-box-border, -10%), -fx-text-box-border),
+        linear-gradient(from 0px 0px to 0px 5px, derive(-fx-control-inner-background, -9%), -fx-control-inner-background);
+    -fx-background-insets: 0, 1;
+    -fx-background-radius: 3, 2;
+    -fx-cursor: text;
+    -fx-padding: 0.333333em 0.583em 0.333333em 0.583em; /* 4 7 4 7 */
+}
+.text-input:focused {
+    -fx-highlight-fill: -fx-accent;
+    -fx-highlight-text-fill: white;
+    -fx-background-color: 
+        -fx-focus-color,
+        -fx-control-inner-background,
+        -fx-faint-focus-color,
+        linear-gradient(from 0px 0px to 0px 5px, derive(-fx-control-inner-background, -9%), -fx-control-inner-background);
+    -fx-background-insets: -0.2, 1, -1.4, 3;
+    -fx-background-radius: 3, 2, 4, 0;
+    -fx-prompt-text-fill: transparent;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * TextArea                                                                    *
+ *                                                                             *
+ ******************************************************************************/
+
+.text-area {
+    -fx-padding: 0;
+    -fx-cursor: default;
+    -fx-background-color: linear-gradient(to bottom, derive(-fx-text-box-border, -10%), -fx-text-box-border),
+        derive(-fx-base,-1%);
+}
+.text-area > .scroll-pane {
+    -fx-background-color: null;
+}
+.text-area > .scroll-pane > .scroll-bar:horizontal {
+    -fx-background-radius: 0 0 2 2;
+}
+.text-area > .scroll-pane > .scroll-bar:vertical {
+    -fx-background-radius: 0 2 2 0;
+}
+.text-area > .scroll-pane > .corner {
+    -fx-background-radius: 0 0 2 0;
+}
+.text-area .content {
+    /*the is 1px less top and bottom than TextInput because of scrollpane border */
+    -fx-padding: 0.25em 0.583em 0.25em 0.583em; /* 3 7 3 7 */
+    -fx-cursor: text;
+    -fx-background-color:
+        linear-gradient(from 0px 0px to 0px 4px, derive(-fx-control-inner-background, -8%), -fx-control-inner-background);
+    -fx-background-radius: 2;
+}
+.text-area:focused .content {
+    -fx-background-color: 
+        -fx-control-inner-background,
+        -fx-faint-focus-color,
+        linear-gradient(from 0px 0px to 0px 5px, derive(-fx-control-inner-background, -9%), -fx-control-inner-background);
+    -fx-background-insets: 0, 0, 2;
+    -fx-background-radius: 2, 1, 0;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * HTML Editor                                                                 *
+ *                                                                             *
+ ******************************************************************************/
+
+.html-editor-foreground {
+    -fx-color-label-visible: false;
+    -fx-color-rect-x: 1;
+    -fx-color-rect-y: 1;
+    -fx-color-rect-width: 4;
+    -fx-color-rect-height: 3;
+    -fx-graphic: url("HTMLEditor-Text-Color.png");
+}
+.html-editor-background {
+    -fx-color-label-visible: false;
+    -fx-color-rect-x: 1;
+    -fx-color-rect-y: 1;
+    -fx-color-rect-width: 4;
+    -fx-color-rect-height: 3;
+    -fx-graphic: url("HTMLEditor-Background-Color.png");
+}
+.color-picker.html-editor-foreground > .color-picker-label > .picker-color > .picker-color-rect,
+.color-picker.html-editor-background > .color-picker-label > .picker-color > .picker-color-rect {
+    -fx-stroke: null;
+}
+.html-editor .button ,
+.html-editor .toggle-button {
+    -fx-padding: 0.333333em 0.416667em 0.333333em 0.416667em; /* 4 5 4 5 */
+}
+.html-editor-cut {
+    -fx-graphic: url("HTMLEditor-Cut.png");
+}
+.html-editor-copy {
+    -fx-graphic: url("HTMLEditor-Copy.png");
+}
+.html-editor-paste {
+    -fx-graphic: url("HTMLEditor-Paste.png");
+}
+.html-editor-align-left {
+    -fx-graphic: url("HTMLEditor-Left.png");
+}
+.html-editor-align-center {
+    -fx-graphic: url("HTMLEditor-Center.png");
+}
+.html-editor-align-right {
+    -fx-graphic: url("HTMLEditor-Right.png");
+}
+.html-editor-align-justify {
+    -fx-graphic: url("HTMLEditor-Justify.png");
+}
+.html-editor-outdent {
+    -fx-graphic: url("HTMLEditor-Outdent.png");
+}
+.html-editor-indent {
+    -fx-graphic: url("HTMLEditor-Indent.png");
+}
+.html-editor-bullets {
+    -fx-graphic: url("HTMLEditor-Bullets.png");
+}
+.html-editor-numbers {
+    -fx-graphic: url("HTMLEditor-Numbered.png");
+}
+.html-editor-bold {
+    -fx-graphic: url("HTMLEditor-Bold.png");
+}
+.html-editor-italic {
+    -fx-graphic: url("HTMLEditor-Italic.png");
+}
+.html-editor-underline {
+    -fx-graphic: url("HTMLEditor-Underline.png");
+}
+.html-editor-strike {
+    -fx-graphic: url("HTMLEditor-Strikethrough.png");
+}
+.html-editor-hr {
+    -fx-graphic: url("HTMLEditor-Break.png");
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * PopupMenu                                                                   *
+ *                                                                             *
+ ******************************************************************************/
+
+.context-menu {
+    -fx-background-color:
+        linear-gradient(to bottom,
+            derive(-fx-color,-17%),
+            derive(-fx-color,-30%)
+        ),
+        -fx-control-inner-background;
+    -fx-background-insets: 0, 1;
+    -fx-padding: 0.333333em 0.083333em 0.333333em 0.083333em; /* 4 1 8 1 */
+    -fx-effect: dropshadow( gaussian , rgba(0,0,0,0.2) , 12, 0.0 , 0 , 8 );
+}
+.context-menu .separator:horizontal .line {
+    -fx-border-color: -fx-box-border transparent transparent transparent;
+    -fx-border-insets: 1 0 0 0;
+}
+.context-menu > .scroll-arrow {
+    -fx-padding: 0.416667em 0.416667em 0.416667em 0.416667em; /* 5 */
+    -fx-background-color: transparent;
+}
+.context-menu > .scroll-arrow:hover {
+    -fx-background: -fx-selection-bar;
+    -fx-background-color: -fx-background;
+    -fx-text-fill: -fx-text-background-color;
+}
+.context-menu:show-mnemonics > .mnemonic-underline {
+    -fx-stroke: -fx-text-fill;
+} 
+
+/*******************************************************************************
+ *                                                                             *
+ * Menu                                                                        *
+ *                                                                             *
+ ******************************************************************************/
+
+.menu {
+    -fx-background-color: transparent;
+    -fx-padding: 0.333333em 0.666667em 0.333333em 0.666667em; /* 4 8 4 8 */
+}
+.menu:show-mnemonics > .mnemonic-underline {
+    -fx-stroke: -fx-text-fill;
+}
+.menu > .right-container > .arrow {
+    -fx-padding: 0.458em 0.167em 0.458em 0.167em; /* 4.5 2 4.5 2 */
+    -fx-background-color: -fx-mark-color;
+    -fx-shape: "M0,-4L4,0L0,4Z";
+    -fx-scale-shape: false;
+}
+.menu:focused > .right-container > .arrow {
+    -fx-background-color: white;
+}
+.menu-up-arrow {
+    -fx-padding: 0.666667em 0.416667em 0.0em 0.416667em;  /* 8 5 0 5 */
+    -fx-background-color: derive(-fx-color,-2%);
+    -fx-shape: "M0 1 L1 1 L.5 0 Z";
+    -fx-effect: innershadow( two-pass-box , rgba(0,0,0,0.6) , 4, 0.0 , 0 , 1 );
+}
+.menu-down-arrow {
+    -fx-background-color: derive(-fx-color,-2%);
+    -fx-padding: 0.666667em 0.416667em 0.0em 0.416667em;  /* 8 5 0 5 */
+    -fx-shape: "M0 0 L1 0 L.5 1 Z";
+    -fx-effect: innershadow( two-pass-box , rgba(0,0,0,0.6) , 4, 0.0 , 0 , 1 );
+}
+
+
+/*******************************************************************************
+ *                                                                             *
+ * MenuBar                                                                     *
+ *                                                                             *
+ ******************************************************************************/
+
+.menu-bar {
+    -fx-padding: 0.0em 0.666667em 0.0em 0.666667em; /* 0 8 0 8 */
+    -fx-spacing: 0.166667em; /* 2 */
+    -fx-background-color:
+        linear-gradient(to bottom, derive(-fx-base,75%) 0%, -fx-outer-border 90%),
+        linear-gradient(to bottom, derive(-fx-base,46.9%) 2%, derive(-fx-base,-2.1%) 95%);
+    -fx-background-insets: 0 0 0 0, 1 0 1 0;
+    -fx-background-radius: 0, 0 ;
+}
+/* Show nothing for background of normal menu button in a menu bar */
+.menu-bar > .container > .menu-button {
+    -fx-background-radius: 0;
+    -fx-background-color: transparent;
+    -fx-background-insets: 0;
+}
+/* Change padding of menu buttons when in menu bar */
+.menu-bar > .container > .menu-button > .label {
+    -fx-padding: 0;
+}
+/* Hide the down arrow for a menu placed in a menubar */
+.menu-bar > .container > .menu-button > .arrow-button > .arrow {
+    -fx-padding: 0.167em 0 0.250em 0; /* 2 0 3 0 */
+    -fx-background-color: transparent;
+    -fx-shape: null;
+}
+.menu-bar > .container > .menu > .arrow-button {
+    -fx-padding: 0.500em 0 0.500em 0; /* 6 0 6 0 */
+}
+.menu-bar > .container > .menu-button:hover,
+.menu-bar > .container > .menu-button:focused,
+.menu-bar > .container > .menu-button:showing {
+    -fx-background: -fx-selection-bar;
+    -fx-background-color: -fx-background;
+}
+.menu-bar > .container > .menu-button:hover > .label,
+.menu-bar > .container > .menu-button:focused > .label,
+.menu-bar > .container > .menu-button:showing  > .label {
+    -fx-text-fill: -fx-text-background-color;
+}
+.menu-bar:show-mnemonics > .mnemonic-underline {
+    -fx-stroke: -fx-text-fill;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * MenuItem                                                                    *
+ *                                                                             *
+ ******************************************************************************/
+
+.menu-item {
+    -fx-background-color: transparent;
+    -fx-padding: 0.333333em 0.41777em 0.333333em 0.41777em;  /* 4 5 4 5 */
+}
+.menu-item > .left-container {
+    -fx-padding: 0.458em 0.791em 0.458em 0.458em;
+}
+.menu-item > .graphic-container {
+    -fx-padding: 0em 0.333em 0em 0em;
+}
+.menu-item >.label {
+    -fx-padding: 0em 0.5em 0em 0em;
+    -fx-text-fill: -fx-text-base-color;
+}
+.menu-item:focused {
+     -fx-background: -fx-selection-bar;
+     -fx-background-color: -fx-background;
+     -fx-text-fill:  -fx-text-background-color;
+}
+.menu-item:focused > .label {
+    -fx-text-fill: white;
+}
+.menu-item > .right-container {
+    -fx-padding: 0em 0em 0em 0.5em;
+}
+.menu-item:show-mnemonics > .mnemonic-underline {
+    -fx-stroke: -fx-text-fill;
+} 
+.radio-menu-item:checked > .left-container > .radio {
+    -fx-background-color: -fx-mark-color;
+    -fx-shape: "M0,5H2L4,8L8,0H10L5,10H3Z";
+    -fx-scale-shape: false;
+}
+.radio-menu-item:focused:checked > .left-container > .radio {
+    -fx-background-color: white;
+}
+.check-menu-item:checked > .left-container > .check {
+    -fx-background-color: -fx-mark-color;
+    -fx-shape: "M0,5H2L4,8L8,0H10L5,10H3Z";
+    -fx-scale-shape: false;
+}
+.check-menu-item:focused:checked > .left-container > .check {
+    -fx-background-color: white;
+}
+/*******************************************************************************
+ *                                                                             *
+ * ChoiceBox                                                                   *
+ *                                                                             *
+ ******************************************************************************/
+
+/*.choice-box > .open-button > .arrow {
+    -fx-background-color: -fx-mark-highlight-color, -fx-mark-color;
+    -fx-background-insets: 1 0 -1 0, 0;
+    -fx-padding: 0.166667em 0.333333em 0.166667em 0.333333em;  2 3.5 2 3.5 
+    -fx-shape: "M 0 0 h 7 l -3.5 4 z";
+}*/
+.choice-box > .context-menu {
+    -fx-background-radius: 6, 5, 4;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * TabPane                                                                     *
+ *                                                                             *
+ ******************************************************************************/
+
+.tab-pane {
+    -fx-tab-min-height: 1.8333em; /* 22 */
+    -fx-tab-max-height: 1.8333em; /* 22 */
+}
+.tab-pane > .tab-header-area > .headers-region > .tab > .tab-container > .tab-label {
+    -fx-alignment: CENTER;
+    -fx-text-fill: -fx-text-base-color;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab {
+    -fx-background-insets: 0 1 1 0, 1 2 1 1, 2 3 1 2;
+    -fx-background-radius: 3 3 0 0, 2 2 0 0, 1 1 0 0;
+    -fx-padding: 0.083333em 0.5em 0.0769em 0.5em; /* 1 6 0.99 6 */
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:top {
+    -fx-background-color: -fx-outer-border, -fx-inner-border, -fx-body-color;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:right {
+    -fx-background-color: -fx-outer-border, -fx-inner-border-bottomup, -fx-body-color-bottomup;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:bottom {
+    -fx-background-color: -fx-outer-border, -fx-inner-border-bottomup, -fx-body-color-bottomup;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:left {
+    -fx-background-color: -fx-outer-border, -fx-inner-border, -fx-body-color;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:hover {
+    -fx-color: -fx-hover-base;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:selected {
+    -fx-background-color: -fx-outer-border, -fx-inner-border, -fx-background;
+    -fx-background-insets: 0 1 1 0, 1 2 0 1, 2 3 0 2;
+}
+.tab-pane:focused > .tab-header-area > .headers-region > .tab:selected .focus-indicator {
+    -fx-border-width: 1, 1;
+    -fx-border-color: -fx-focus-color, -fx-faint-focus-color;
+    -fx-border-insets: -4 -4 -6 -5, -2 -2 -5 -3;
+    -fx-border-radius: 2, 1; /* looks sharper if outer border has a tighter radius (2 instead of 3) */
+}
+.tab-pane:focused > .tab-header-area > .headers-region > .tab:bottom:selected .focus-indicator {
+    -fx-border-insets: -6 -5 -4 -4, -5 -3 -2 -2;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:disabled:hover {
+    -fx-color: -fx-base;
+}
+.tab-pane > .tab-header-area > .tab-header-background {
+    /* TODO should not be using text-box-border I think? */
+    -fx-background-color:  
+        -fx-outer-border,
+        -fx-text-box-border, 
+        linear-gradient(from 0px 0px to 0px 5px, -fx-text-box-border, derive(-fx-text-box-border, 30%));
+}
+.tab-pane:top > .tab-header-area > .tab-header-background {
+    -fx-background-insets: 0, 0 0 1 0, 1;
+}
+.tab-pane:bottom > .tab-header-area > .tab-header-background {
+    -fx-background-insets: 0, 1 0 0 0, 1;
+}
+.tab-pane:left > .tab-header-area > .tab-header-background {
+    -fx-background-insets: 0, 0 1 0 0, 1;
+}
+.tab-pane:right > .tab-header-area > .tab-header-background {
+    -fx-background-insets: 0, 0 0 0 1, 1;
+}
+.tab-pane:top > .tab-header-area {
+    /*-fx-padding: 0.416667em 0.166667em 0.0em 0.416667em; *//* 5 2 0 5 */
+    -fx-padding: 0.416667em 5 0.0em 0.416667em; /* 5 2 0 5 */
+}
+.tab-pane:bottom > .tab-header-area {
+    -fx-padding: 0 0.166667em 0.416667em 0.416667em; /* 0 2 5 5 */
+}
+.tab-pane:left > .tab-header-area {
+    -fx-padding: 0.416667em 0.0em 0.166667em 0.416667em; /* 5 0 2 5 */
+}
+.tab-pane:right > .tab-header-area {
+    -fx-padding: 0.416667em 0.416667em 0.166667em 0.0em; /* 5 5 2 0 */
+}
+/* TODO: scaling the shape seems to make it way too large */
+.tab-pane > .tab-header-area > .headers-region > .tab > .tab-container > .tab-close-button {
+    -fx-background-color: -fx-mark-color;
+    -fx-shape: "M 0,0 H1 L 4,3 7,0 H8 V1 L 5,4 8,7 V8 H7 L 4,5 1,8 H0 V7 L 3,4 0,1 Z";
+    -fx-scale-shape: false;
+    -fx-effect: dropshadow(two-pass-box , rgba(255, 255, 255, 0.4), 1, 0.0 , 0, 1);
+}
+.tab-pane > .tab-header-area > .headers-region > .tab > .tab-container > .tab-close-button:hover {
+    -fx-background-color: derive(-fx-mark-color, -30%);
+}
+/* CONTROL BUTTONS */
+.tab-pane > .tab-header-area > .control-buttons-tab > .container {
+    -fx-padding: 3 0 0 0; 
+}
+.tab-pane > .tab-header-area > .control-buttons-tab > .container > .tab-down-button {
+    -fx-background-color: -fx-outer-border, -fx-inner-border, -fx-body-color;
+    -fx-background-insets: -1 0 5 0, 0 1 6 1, 1 2 7 2;
+    -fx-padding: 4 4 9 4;
+    -fx-background-radius: 10;
+}
+.tab-pane:bottom > .tab-header-area > .control-buttons-tab > .container > .tab-down-button {
+    -fx-padding: -5 4 4 4; /* TODO convert to ems */
+}
+/* FLOATING TABS CUSTOMISATION */
+.tab-pane.floating > .tab-header-area > .tab-header-background {
+    -fx-background-color: null;
+}
+.tab-pane.floating > .tab-header-area {
+    -fx-background-color: null;
+}
+.tab-pane.floating > .tab-content-area {
+    -fx-background-color: -fx-outer-border, -fx-background;
+    -fx-background-insets: 0, 1;
+    -fx-background-radius: 2, 0;
+    -fx-padding: 2;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * ComboBox                                                                    *
+ *                                                                             *
+ ******************************************************************************/
+
+/* Customise the ListCell that appears in the ComboBox button itself */
+.combo-box > .list-cell {
+    -fx-background: transparent;
+    -fx-background-color: transparent;
+    -fx-text-fill: -fx-text-base-color;
+    -fx-padding: 0.333333em 0.666667em 0.333333em 0.666667em; /* 4 8 4 8 */
+}
+.combo-box-base > .arrow-button {
+    -fx-background-radius: 0 3 3 0, 0 2 2 0, 0 1 1 0;
+    -fx-padding: 0.5em 0.667em 0.5em 0.833333em; /* 6 8 6 10 */
+    -fx-background-color: transparent;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * Editable ComboBox                                                           *
+ *                                                                             *
+ * The editable ComboBox TextBox inherits its properties from the TextBox      *
+ * Control. Only the properties with values that are different from the        *
+ * TextBox are specified here.                                                 *
+ *                                                                             *
+ ******************************************************************************/
+
+.combo-box-base:editable > .arrow-button,
+.date-picker > .arrow-button {
+    -fx-background-color: -fx-outer-border, -fx-inner-border, -fx-body-color;
+    -fx-background-insets: 1 1 1 0, 1, 2;
+    -fx-background-radius: 0 3 3 0, 0 2 2 0, 0 1 1 0;
+}
+.combo-box-base:editable > .text-field,
+.date-picker > .text-field {
+    -fx-background-color: -fx-control-inner-background;
+    -fx-background-insets: 1 0 1 1;
+    -fx-background-radius: 2 0 0 2;
+}
+.combo-box-base:editable:contains-focus,
+.date-picker:contains-focus {
+    -fx-background-color: -fx-focus-color;
+    -fx-background-insets: -0.2;
+    -fx-background-radius: 3;
+}
+.combo-box-base:editable:focused > .text-field,
+.combo-box-base:editable > .text-field:focused,
+.date-picker:focused > .text-field,
+.date-picker > .text-field:focused {
+    -fx-background-color: 
+        -fx-control-inner-background,
+        -fx-faint-focus-color,
+        linear-gradient(from 0px 0px to 0px 5px, derive(-fx-control-inner-background, -9%), -fx-control-inner-background);
+    -fx-background-insets: 1 0 1 1, 1 0 1 1, 3 2 3 3;
+    -fx-background-radius: 2 0 0 2, 1 0 0 1, 0;
+}
+.combo-box-base:editable:contains-focus > .arrow-button,
+.date-picker:contains-focus > .arrow-button {
+    -fx-background-color: -fx-inner-border, -fx-body-color, -fx-faint-focus-color, -fx-body-color;
+    -fx-background-insets: 1, 2, 1, 2.6;
+    -fx-background-radius: 0 2 2 0, 0 1 1 0, 0 1 1 0, 0 1 1 0;
+}
+
+/* -------------- STYLES FOR THE DEFAULT LISTVIEW-BASED COMBOBOX ------------- */
+
+.combo-box-popup > .list-view {
+    -fx-background-color:
+        linear-gradient(to bottom,
+            derive(-fx-color,-17%),
+            derive(-fx-color,-30%)
+        ),
+        -fx-control-inner-background;
+    -fx-background-insets: 0, 1;
+    -fx-effect: dropshadow( gaussian , rgba(0,0,0,0.2) , 12, 0.0 , 0 , 8 );
+}
+.combo-box-popup > .list-view > .virtual-flow > .clipped-container > .sheet > .list-cell {
+    -fx-padding: 4 0 4 5;
+    /* No alternate highlighting */
+    -fx-background: -fx-control-inner-background;
+}
+.combo-box-popup > .list-view > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:selected {
+    -fx-background:  -fx-selection-bar-non-focused;
+    -fx-background-color:  -fx-background;
+}
+.combo-box-popup  > .list-view > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:hover,
+.combo-box-popup  > .list-view > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:selected:hover {
+    -fx-background: -fx-accent;
+    -fx-background-color: -fx-selection-bar;
+}
+.combo-box-popup > .list-view > .placeholder > .label {
+    -fx-text-fill: derive(-fx-control-inner-background,-30%);
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * TitledPane                                                                  *
+ *                                                                             *
+ ******************************************************************************/
+
+.titled-pane {
+    -fx-text-fill: -fx-text-base-color;
+}
+.titled-pane > .title {
+    -fx-background-color:
+        linear-gradient(to bottom,
+            derive(-fx-color,-15%) 95%,
+            derive(-fx-color,-25%) 100%
+        ),
+        -fx-inner-border, -fx-body-color;
+    -fx-background-insets: 0, 1, 2;
+    -fx-background-radius: 3 3 0 0, 2 2 0 0, 1 1 0 0;
+    -fx-padding: 0.3333em 0.75em 0.3333em 0.75em; /* 4 9 4 9 */
+}
+/* alternative focus using the ring around the entire title area */
+/*.titled-pane:focused > .title {
+    -fx-background-color: -fx-faint-focus-color, -fx-focus-color, -fx-inner-border, -fx-body-color; 
+    -fx-background-insets: 0, 0.7, 2, 3;    
+}*/
+/* focus purely on the arrow */
+.titled-pane:focused > .title > .arrow-button > .arrow {
+    -fx-background-color: -fx-focus-color, -fx-mark-color;
+    -fx-background-insets: -1, 0;
+    -fx-effect: dropshadow(two-pass-box , -fx-focus-color, 5, 0.2 , 0, 0);
+}
+.titled-pane > .title > .arrow-button {
+    -fx-background-color: null;
+    -fx-background-insets: 0;
+    -fx-background-radius: 0;
+    -fx-padding: 0.0em 0.583em 0.0em 0.0em; /* 0 7 0 0 */
+}
+.titled-pane > .title > .arrow-button > .arrow {
+    -fx-background-color: -fx-mark-highlight-color, -fx-mark-color;
+    -fx-background-insets: 1 0 -1 0, 0;
+    -fx-padding: 0.25em 0.3125em 0.25em 0.3125em; /* 3 3.75 3 3.75 */
+    -fx-shape: "M 0 0 h 7 l -3.5 4 z";
+}
+.titled-pane > .title:hover {
+    -fx-color: -fx-hover-base;
+}
+/* alternative content using a border and a grad to transparent background - why should TitledPane content have a colour? */
+.titled-pane > *.content {
+    -fx-border-color: -fx-box-border;
+    -fx-border-insets: -1 0 0 0;
+    -fx-background-color: linear-gradient(from 0px 0px to 0px 5px, derive(-fx-background, -6%), -fx-background);
+}
+
+
+
+/*******************************************************************************
+ *                                                                             *
+ * Accordion                                                                   *
+ *                                                                             *
+ ******************************************************************************/
+
+.accordion > .titled-pane > .title {
+    -fx-background-color:
+        linear-gradient(to bottom,
+        derive(-fx-color,-15%) 95%,
+        derive(-fx-color,-25%) 100%
+        ),
+        -fx-inner-border,
+        -fx-body-color;
+    -fx-background-insets: -1 0 0 0, 0 1 1 1, 1 2 2 2;
+    -fx-background-radius: 0, 0, 0;
+}
+.accordion > .first-titled-pane > .title {
+    -fx-background-insets: 0, 1, 2;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * SplitPane                                                                   *
+ *                                                                             *
+ ******************************************************************************/
+
+.split-pane > .split-pane-divider {
+    -fx-padding: 0 0.25em 0 0.25em; /* 0 3 0 3 */
+}
+/* horizontal the two nodes are placed to the left/right of each other. */
+.split-pane:horizontal > .split-pane-divider {
+   -fx-background-color: -fx-box-border, -fx-inner-border-horizontal;
+   -fx-background-insets: 0, 0 1 0 1;
+}
+/* vertical the two nodes are placed on top of each other. */
+.split-pane:vertical > .split-pane-divider {
+   -fx-background-color: -fx-box-border, -fx-inner-border;
+   -fx-background-insets: 0, 1 0 1 0;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * ColorPicker                                                                 *
+ *                                                                             *
+ ******************************************************************************/
+
+.color-picker > .arrow-button {
+    -fx-background-color: null;
+    -fx-padding: 0.5em 0.667em 0.5em 0; /*  6 8 6 0 */
+}
+.color-picker.split-button > .arrow-button  {
+    -fx-background-color: -fx-outer-border, -fx-inner-border, -fx-body-color;
+    -fx-background-insets: 1 1 1 0, 1, 2;
+    -fx-background-radius: 0 3 3 0, 0 2 2 0, 0 1 1 0;
+}
+.color-picker.split-button:focused > .arrow-button {
+    /*-fx-background-color: -fx-focus-color, -fx-inner-border, -fx-body-color !important;*/
+    /*-fx-background-insets: 0, 1, 2;*/
+    -fx-background-color: -fx-focus-color, -fx-inner-border, -fx-body-color, -fx-faint-focus-color, -fx-body-color;
+    -fx-background-insets: 1 1 1 0, 1, 2, 1, 2.6;
+    -fx-background-radius: 0 3 3 0, 0 2 2 0, 0 1 1 0, 0 1 1 0, 0 1 1 0;
+}
+.color-picker.split-button > .color-picker-label,
+.color-picker.split-button:focused > .color-picker-label{
+    -fx-background-color: null;
+}
+.color-picker.split-button > .arrow-button {
+    /*-fx-background-color: -fx-outer-border, -fx-inner-border, -fx-body-color !important;*/
+    -fx-padding: 0.5em 0.667em 0.5em 0.667em; /* 6 8 6 8 */
+}
+.color-picker > .color-picker-label > .picker-color > .picker-color-rect {
+    -fx-stroke: -fx-box-border;
+}
+
+.color-palette {
+    -fx-spacing: 0.833333em; /* 10px */
+    -fx-background-color:
+        linear-gradient(to bottom,
+            derive(-fx-color,-17%),
+            derive(-fx-color,-30%)
+        ),
+        linear-gradient(to bottom, 
+            derive(-fx-background,10%) 0%, 
+            derive(-fx-background,-5%) 12%, 
+            derive(-fx-background,15%) 88%, 
+            derive(-fx-background,-10%) 100%);
+    -fx-background-insets: 0, 1;
+    -fx-background-radius: 6, 5;
+    -fx-padding: 1em; /* 12 */
+    -fx-effect: dropshadow( gaussian , rgba(0,0,0,0.2) , 12, 0.0 , 0 , 8 );
+}
+.color-palette > .color-picker-grid {
+    -fx-padding: 0.5px;
+    -fx-snap-to-pixel: false;
+}
+.color-palette > .color-picker-grid > .color-square {
+    -fx-background-color: transparent;
+    -fx-padding: 0.5px;
+}
+/* the color over which the user is hovering */
+.color-palette > .color-picker-grid > .color-square:focused, 
+.color-palette > .color-picker-grid > .color-square:selected:focused {
+    -fx-background-color: -fx-faint-focus-color, -fx-focus-color;
+    -fx-background-insets: -2,0;
+    -fx-background-radius: 5,0;
+    -fx-scale-x: 1.5;
+    -fx-scale-y: 1.5;
+}
+/* the currently selected color */
+.color-palette > .color-picker-grid > .color-square:selected {
+    -fx-background-color: black;
+} 
+/* ------- CUSTOM COLOR DIALOG ------- */
+.custom-color-dialog > .color-rect-pane {
+    -fx-spacing: 0.75em;
+    -fx-pref-height: 16.666667em;
+    -fx-alignment: top-left;
+    -fx-fill-height: true;
+}
+
+.custom-color-dialog .color-rect-pane .color-rect {
+    -fx-min-width: 16.666667em;
+    -fx-min-height: 16.666667em;
+}
+
+.custom-color-dialog .color-rect-pane .color-rect-border {
+    -fx-border-color: derive(-fx-base, -20%);
+}
+
+.custom-color-dialog > .color-rect-pane #color-rect-indicator {
+    -fx-background-color: null;
+    -fx-border-color: white;
+    -fx-border-radius: 0.4166667em;
+    -fx-translate-x: -0.4166667em;
+    -fx-translate-y: -0.4166667em;
+    -fx-pref-width: 0.833333em;
+    -fx-pref-height: 0.833333em;
+    -fx-effect: dropshadow(three-pass-box, black, 2, 0.0, 0, 1);
+}
+
+.custom-color-dialog > .color-rect-pane > .color-bar {
+    -fx-min-width: 1.666667em;
+    -fx-min-height: 16.666667em;
+    -fx-max-width: 1.666667em;
+    -fx-border-color: derive(-fx-base, -20%);
+}
+
+.custom-color-dialog > .color-rect-pane > .color-bar > #color-bar-indicator {
+    -fx-border-radius: 0.333333em;
+    -fx-border-color: white;
+    -fx-effect: dropshadow(three-pass-box, black, 2, 0.0, 0, 1);
+    -fx-pref-width: 2em;
+    -fx-pref-height: 0.833333em;
+    -fx-translate-x: -0.1666667em;
+    -fx-translate-y: -0.4166667em;
+}
+
+.custom-color-dialog  {
+    -fx-background-color: -fx-background;
+    -fx-padding: 1.25em;
+    -fx-spacing: 1.25em;
+}
+.custom-color-dialog .controls-pane .current-new-color-grid #current-new-color-border {
+    -fx-border-color: derive(-fx-base, -20%);
+    -fx-border-width: 2px;
+}
+
+.custom-color-dialog .controls-pane .current-new-color-grid .color-rect {
+    -fx-min-width: 10.666667em;
+    -fx-min-height: 1.75em;
+    -fx-pref-width: 10.666667em;
+    -fx-pref-height: 1.75em;
+}
+
+.custom-color-dialog .transparent-pattern {
+    -fx-background-image: url("pattern-transparent.png"); 
+    -fx-background-repeat: repeat;
+    -fx-background-size: auto;
+}
+
+.custom-color-dialog .controls-pane #spacer1 {
+    -fx-min-height: 0.1666667em;
+    -fx-max-height: 0.1666667em;
+    -fx-pref-height: 0.1666667em;
+}
+
+.custom-color-dialog .controls-pane #spacer2 {
+    -fx-min-height: 1em;
+    -fx-max-height: 1em;
+    -fx-pref-height: 1em;
+}
+
+.custom-color-dialog .controls-pane #settings-pane {
+    -fx-hgap: 0.4166667em;
+    -fx-vgap: 0.3333333em;
+}
+
+.custom-color-dialog .controls-pane #settings-pane .settings-label {
+    -fx-min-width: 5.75em;
+}
+
+.custom-color-dialog .controls-pane #settings-pane .settings-unit {
+    -fx-max-width: 1em;
+}
+
+.custom-color-dialog .controls-pane #settings-pane .slider {
+    -fx-pref-width: 8.25em;
+}
+
+.custom-color-dialog .controls-pane .color-input-field {
+    -fx-pref-column-count: 3;
+    -fx-max-width: 3.25em;
+    -fx-min-width: 3.25em;
+    -fx-pref-width: 3.25em;
+}
+
+.custom-color-dialog .controls-pane .web-field {
+    -fx-pref-column-count: 6;
+    -fx-pref-width: 8.25em;
+}
+
+.custom-color-dialog .controls-pane #spacer-side {
+    -fx-min-width: 0.5em;
+    -fx-pref-width: 0.5em;
+}
+
+.custom-color-dialog .controls-pane #spacer-bottom {
+    -fx-pref-height: 0.833333em;
+    -fx-min-height: 0.833333em;
+}
+
+.custom-color-dialog .controls-pane .customcolor-controls-background {
+    -fx-background-color: -fx-text-box-border, -fx-control-inner-background;
+    -fx-background-insets: 
+        0.8333333em 0 0.4166667em 0,
+        1em 0.166667em 0.5833333em 0.166667em;
+    -fx-background-radius: 0.3333333em, 0.166667em;
+}
+
+.custom-color-dialog .controls-pane .current-new-color-grid .label {
+    -fx-padding: 0 0 0 0.4166667em;
+}
+
+.custom-color-dialog .controls-pane #buttons-hbox {
+    -fx-spacing: 0.333333em;
+    -fx-padding: 1em 0 0 0;
+    -fx-alignment: bottom-right;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * Pagination                                                                  *
+ *                                                                             *
+ ******************************************************************************/
+
+.pagination {
+    -fx-padding: 0;        
+    -fx-arrows-visible: true;
+    -fx-tooltip-visible: true;
+    -fx-page-information-visible: true;
+    -fx-page-information-alignment: bottom;
+    -fx-arrow-button-gap: 0;
+}
+.pagination > .page {
+    -fx-background-color: transparent;
+}
+.pagination > .pagination-control {
+    -fx-background-color: transparent;
+    -fx-font-size: 0.82em;
+}
+.pagination > .pagination-control > .control-box {
+    -fx-padding: 5px 0 0 0;
+    -fx-spacing: 2;
+    -fx-alignment: center;
+}
+.pagination > .pagination-control > .control-box > .left-arrow-button {
+    -fx-background-radius: 3 0 0 3, 3 0 0 3, 2 0 0 2, 1 0 0 1;
+    -fx-background-insets: 0 0 -1 5, 0 0 0 5, 1 1 1 6, 2 2 2 7;
+    -fx-padding: 0em 0.417em 0em 0.833em; /* 0 5 0 10 */
+}
+.pagination > .pagination-control > .control-box > .right-arrow-button {
+    -fx-background-radius: 0 3 3 0, 0 3 3 0, 0 2 2 0, 0 1 1 0;
+    -fx-background-insets: 0 5 -1 0, 0 5 0 0, 1 6 1 1, 2 7 2 2;
+    -fx-padding: 0em 0.75em 0em 0.417em; /* 0 9 0 5 */
+}
+.pagination > .pagination-control .left-arrow {
+    -fx-background-color: -fx-mark-highlight-color, -fx-mark-color;
+    -fx-background-insets: 1 0 -1 0, 0;
+    -fx-padding: 0.375em 0.291em 0.375em 0.291em;
+    -fx-shape: "M 0 0 L -13 7 L 0 13 z";
+    -fx-scale-shape: true;
+}
+.pagination > .pagination-control .right-arrow {
+    -fx-background-color: -fx-mark-highlight-color, -fx-mark-color;
+    -fx-background-insets: 1 0 -1 0, 0;
+    -fx-padding: 0.375em 0.291em 0.375em 0.291em;
+    -fx-shape: "M 0 0 L 13 7 L 0 13 z";
+    -fx-scale-shape: true;
+}
+.pagination > .pagination-control > .control-box > .bullet-button {   
+   -fx-background-radius: 0, 4em, 4em, 4em, 4em;
+   -fx-padding: 0.333em;
+   -fx-background-color: transparent, -fx-outer-border, -fx-inner-border, -fx-body-color;
+   -fx-background-insets: 0, 5,  6,  7;
+}
+.pagination > .pagination-control > .control-box > .bullet-button:selected {   
+    -fx-base: -fx-accent;
+}
+.pagination.bullet > .pagination-control > .control-box {
+    -fx-spacing: 0;
+    -fx-alignment: center;
+}
+.pagination.bullet > .pagination-control > .control-box > .left-arrow-button {
+    -fx-background-radius: 4em;
+    -fx-background-insets: 0, 1, 2;
+    -fx-padding: 0em 0.25em 0em 0.083em; /* 0 3 0 1 */
+} 
+.pagination.bullet > .pagination-control > .control-box > .right-arrow-button {
+    -fx-background-radius: 4em;
+    -fx-background-insets: 0, 1, 2;
+    -fx-padding: 0em 0.083em 0em 0.25em; /* 0 1 0 3 */
+}
+.pagination > .pagination-control > .control-box > .number-button {
+    -fx-background-radius: 0;
+    -fx-padding: 0.166667em 0.25em 0.25em 0.333em;
+    -fx-background-color: -fx-shadow-highlight-color, -fx-outer-border, -fx-inner-border, -fx-body-color;
+}
+.pagination > .pagination-control > .control-box > .number-button:selected {   
+    -fx-base: -fx-accent;
+}
+.pagination > .pagination-control > .page-information {   
+    -fx-padding: 0.416em 0 0 0;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * Customised CSS for controls placed directly within cells                    *
+ *                                                                             *
+ ******************************************************************************/
+
+.cell > .choice-box {
+    -fx-background-color: transparent;
+    -fx-background-insets: 0;
+    -fx-background-radius: 0;
+    -fx-padding: 0.0em 0.5em 0.0em 0.0em; /* 0 6 0 0 */
+    -fx-alignment: CENTER_LEFT;
+    -fx-content-display: LEFT;
+}
+.cell > .choice-box > .label {
+    -fx-padding: 0em 0.333333em 0.0em 0.333333; /* 2 4 3 6 */
+}
+.cell:focused:selected > .choice-box > .label {
+    -fx-text-fill: white;
+}
+.cell:focused:selected > .choice-box > .open-button > .arrow {
+    -fx-background-color: -fx-mark-highlight-color, white;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * List, Tree, Table COMMON                                                    *
+ *                                                                             *
+ ******************************************************************************/
+
+/* remove double borders from scrollbars */
+.list-view > .virtual-flow > .scroll-bar:vertical,
+.tree-view > .virtual-flow > .scroll-bar:vertical,
+.table-view > .virtual-flow > .scroll-bar:vertical,
+.tree-table-view > .virtual-flow > .scroll-bar:vertical {
+    -fx-background-insets: 0, 0 0 0 1;
+    -fx-padding: -1 -1 -1 0;
+}
+.list-view > .virtual-flow > .scroll-bar:horizontal,
+.tree-view > .virtual-flow > .scroll-bar:horizontal,
+.table-view > .virtual-flow > .scroll-bar:horizontal,
+.tree-table-view > .virtual-flow > .scroll-bar:horizontal {
+    -fx-background-insets: 0, 1 0 0 0;
+    -fx-padding: 0 -1 -1 -1;
+}
+.list-view > .virtual-flow > .corner,
+.tree-view > .virtual-flow > .corner,
+.table-view > .virtual-flow > .corner,
+.tree-table-view > .virtual-flow > .corner {
+    -fx-background-color: derive(-fx-base,-1%);
+}
+/* standard cell */
+.list-cell,
+.tree-cell {
+    -fx-background: -fx-control-inner-background;
+    -fx-background-color: -fx-background;
+    -fx-text-fill: -fx-text-background-color;
+}
+/* Selected rows */
+.list-view:focused > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:selected,
+.tree-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-cell:filled:selected,
+.table-view:focused > .virtual-flow > .clipped-container > .sheet > .table-row-cell:filled:selected,
+.tree-table-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell:filled:selected,
+.table-view:focused > .virtual-flow > .clipped-container > .sheet > .table-row-cell .table-cell:selected,
+.tree-table-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell .tree-table-cell:selected {
+    -fx-background: -fx-selection-bar;
+    -fx-table-cell-border-color: derive(-fx-selection-bar, 20%);
+}
+/* Selected when control is not focused */
+.list-cell:filled:selected,
+.tree-cell:filled:selected,
+.table-row-cell:filled:selected,
+.tree-table-row-cell:filled:selected,
+.table-row-cell:filled > .table-cell:selected,
+.tree-table-row-cell:filled > .tree-table-cell:selected {
+    -fx-background: -fx-selection-bar-non-focused;
+    -fx-table-cell-border-color: derive(-fx-selection-bar-non-focused, 20%);
+}
+/* focused cell (keyboard navigation) */
+.list-view:focused > .virtual-flow > .clipped-container > .sheet > .list-cell:focused,
+.tree-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-cell:focused,
+.table-view:focused:row-selection > .virtual-flow > .clipped-container > .sheet > .table-row-cell:focused,
+.tree-table-view:focused:row-selection > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell:focused,
+.table-view:focused:cell-selection > .virtual-flow > .clipped-container > .sheet > .table-row-cell > .table-cell:focused,
+.tree-table-view:focused:cell-selection > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell > .tree-table-cell:focused {
+    -fx-background-color: -fx-background, -fx-cell-focus-inner-border, -fx-background;
+    -fx-background-insets: 0, 1, 2;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * ListView and ListCell                                                       *
+ *                                                                             *
+ ******************************************************************************/
+
+.list-cell {
+    -fx-padding: 0.25em 0.583em 0.25em 0.583em; /* 3 7 3 7 */
+}
+.list-cell:odd {
+    -fx-background: -fx-control-inner-background-alt;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * TreeView and TreeCell                                                       *
+ *                                                                             *
+ ******************************************************************************/
+
+.tree-cell {
+    -fx-padding: 0.25em; /* 3 */
+    -fx-indent: 1em;
+}
+.tree-cell .label {
+    -fx-padding: 0.0em 0.0em 0.0em 0.25em; /* 0 0 0 3 */
+}
+.tree-cell > .tree-disclosure-node,
+.tree-table-row-cell > .tree-disclosure-node {
+    -fx-padding: 4 6 4 8;
+    -fx-background-color: transparent;
+}
+.tree-cell > .tree-disclosure-node > .arrow,
+.tree-table-row-cell > .tree-disclosure-node > .arrow {
+    -fx-background-color: -fx-text-background-color;
+    -fx-padding: 0.333333em 0.229em 0.333333em 0.229em; /* 4 */
+    -fx-shape: "M 0 -3.5 L 4 0 L 0 3.5 z";
+}
+.tree-cell:expanded > .tree-disclosure-node > .arrow,
+.tree-table-row-cell:expanded > .tree-disclosure-node > .arrow {
+    -fx-rotate: 90;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * TableView                                                                   *
+ *                                                                             *
+ ******************************************************************************/
+
+.table-view,
+.tree-table-view {
+    /* Constants used throughout the tableview. */
+    -fx-table-header-border-color: -fx-box-border;
+    -fx-table-cell-border-color: derive(-fx-color,5%);
+}
+/***** ROW CELLS **************************************************************/
+/* Each row in the table is a table-row-cell. Inside a table-row-cell is any
+   number of table-cell. */
+.table-row-cell {
+    -fx-background: -fx-control-inner-background;
+    -fx-background-color: -fx-table-cell-border-color, -fx-background;
+    -fx-background-insets: 0, 0 0 1 0;
+    -fx-padding: 0;
+    -fx-text-fill: -fx-text-background-color;
+}
+.table-row-cell:odd {
+    -fx-background: -fx-control-inner-background-alt;
+}
+/***** INDIVIDUAL CELLS ********************************************************/
+.table-cell {
+    -fx-padding: 0.166667em; /* 2px, plus border adds 1px */
+    -fx-background-color: null;
+    -fx-border-color: transparent -fx-table-cell-border-color transparent transparent;
+    -fx-cell-size: 2.0em; /* 24 */
+    -fx-text-fill: -fx-text-background-color;
+}
+.table-view > .virtual-flow > .clipped-container > .sheet > .table-row-cell .table-cell:selected,
+.tree-table-view > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell .tree-table-cell:selected {
+    -fx-background-color: -fx-table-cell-border-color, -fx-background;
+    -fx-background-insets: 0, 0 0 1 0;
+}
+/* When in constrained resize mode, the right-most visible cell should not have
+   a right-border, as it is not possible to get this cleanly out of view without
+   introducing horizontal scrollbars (see RT-14886). */
+.table-view:constrained-resize > .virtual-flow > .clipped-container > .sheet > .table-row-cell > .table-cell:last-visible,
+.tree-table-view:constrained-resize > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell > .tree-table-cell:last-visible {
+    -fx-border-color: transparent;
+}
+/***** HEADER **********************************************************************/
+/* The column-resize-line is shown when the user is attempting to resize a column. */
+.table-view .column-resize-line,
+.tree-table-view .column-resize-line {
+    -fx-background: -fx-accent;
+    -fx-background-color: -fx-background;
+    -fx-padding: 0.0em 0.0416667em 0.0em 0.0416667em; /* 0 0.571429 0 0.571429 */
+}
+/* This is the area behind the column headers. An ideal place to specify background
+   and border colors for the whole area (not individual column-header's). */
+.table-view .column-header-background,
+.tree-table-view > .column-header-background {
+    -fx-background-color: -fx-inner-border, -fx-body-color;
+    -fx-background-insets: 0, 1;
+}
+/* The column header row is made up of a number of column-header, one for each
+   TableColumn, and a 'filler' area that extends from the right-most column
+   to the edge of the tableview, or up to the 'column control' button. */
+.table-view .column-header,
+.tree-table-view .column-header,
+.table-view .filler,
+.tree-table-view .filler,
+.table-view > .column-header-background > .show-hide-columns-button,
+.tree-table-view > .column-header-background > .show-hide-columns-button,
+.table-view:constrained-resize .filler,
+.tree-table-view:constrained-resize .filler {
+    -fx-background-color: -fx-box-border, -fx-inner-border, -fx-body-color;
+    -fx-background-insets: 0, 0 1 1 0, 1 2 2 1;
+    -fx-font-weight: bold;
+    -fx-size: 2em;
+    -fx-text-fill: -fx-selection-bar-text;
+    -fx-padding: 0.166667em;
+}
+.table-view .filler,
+.tree-table-view .filler,
+.table-view:constrained-resize .filler,
+.tree-table-view:constrained-resize .filler {
+    -fx-background-insets: 0, 0 0 1 0, 1 1 2 1;
+}
+.table-view > .column-header-background > .show-hide-columns-button,
+.tree-table-view > .column-header-background > .show-hide-columns-button {
+    -fx-background-insets: 0, 0 0 1 1, 1 1 2 2;
+}
+.table-view .column-header .sort-order-dots-container,
+.tree-table-view .column-header .sort-order-dots-container{
+    -fx-padding: 2 0 2 0;
+}
+.table-view .column-header .sort-order,
+.tree-table-view .column-header .sort-order{
+    -fx-font-size: 0.916667em; /* 11pt - 1 less than the default font */
+}
+.table-view .column-header .sort-order-dot,
+.tree-table-view .column-header .sort-order-dot {
+    -fx-background-color: -fx-mark-color;
+    -fx-padding: 0.115em;
+    -fx-background-radius: 0.115em;
+}
+.table-view .column-header .label,
+.tree-table-view .column-header .label {
+    -fx-alignment: center;
+}
+
+/* Plus Symbol */
+.table-view .show-hide-column-image,
+.tree-table-view .show-hide-column-image {
+    -fx-background-color: -fx-mark-color;
+    -fx-padding: 0.25em; /* 3px */
+    -fx-shape: "M398.902,298.045c0.667,0,1.333,0,2,0c0,0.667,0,1.333,0,2c0.667,0,1.333,0,2,0c0,0.667,0,1.333,0,2c-0.667,0-1.333,0-2,0c0,0.666,0,1.332,0,1.999c-0.667,0-1.333,0-2,0c0-0.667,0-1.333,0-1.999c-0.666,0-1.333,0-1.999,0c0-0.667,0-1.334,0-2c0.666,0,1.333,0,1.999,0C398.902,299.378,398.902,298.711,398.902,298.045z"; 
+}
+/* When a column is being 'dragged' to be placed in a different position, there
+   is a region that follows along the column header area to indicate where the
+   column will be dropped. This region can be styled using the .column-drag-header
+   name. */
+.table-view .column-drag-header,
+.tree-table-view .column-drag-header {
+    -fx-background: -fx-accent;
+    -fx-background-color: -fx-selection-bar;
+    -fx-border-color: transparent;
+    -fx-opacity: 0.6;
+}
+/* Semi-transparent overlay to indicate the column that is currently being moved */
+.table-view .column-overlay,
+.tree-table-view .column-overlay {
+    -fx-background-color: darkgray;
+    -fx-opacity: 0.3;
+}
+/* Header Sort Arrows */
+.table-view /*> column-header-background > nested-column-header >*/ .arrow,
+.tree-table-view /*> column-header-background > nested-column-header >*/ .arrow {
+    -fx-background-color: -fx-mark-color;
+    -fx-padding: 0.25em 0.3125em 0.25em 0.3125em; /* 3 3.75 3 3.75 */
+    -fx-shape: "M 0 0 h 7 l -3.5 4 z";
+}
+/* This is shown when the table has no rows and/or no columns. */
+.table-view .empty-table,
+.tree-table-view .empty-table {
+    -fx-background-color: white;
+    -fx-font-size: 1.166667em; /* 14pt - 2 more than the default font */
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * Table Cells                                                                 *
+ *                                                                             *
+ ******************************************************************************/
+
+.check-box-table-cell {
+    -fx-alignment: center;
+    -fx-padding: 0;
+}
+.check-box-table-cell > .check-box {
+    -fx-font-size: 0.8em;
+    -fx-opacity: 1;
+    -fx-padding: 0 0 1 0;
+}
+.check-box-table-cell > .check-box > .box {
+    -fx-background-color: -fx-outer-border, -fx-background;
+    -fx-background-insets: 0,1;
+}
+.check-box-table-cell > .check-box:selected > .box > .mark {
+    -fx-background-color: -fx-text-background-color;
+    -fx-background-insets: 0;
+}
+.table-view:focused > .virtual-flow > .clipped-container > .sheet > .table-row-cell:filled > .check-box-table-cell:selected > .check-box > .box,
+.tree-table-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell:filled > .check-box-table-cell:selected > .check-box > .box,
+.table-view:focused > .virtual-flow > .clipped-container > .sheet > .table-row-cell:filled:selected > .check-box-table-cell > .check-box > .box,
+.tree-table-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell:filled:selected > .check-box-table-cell > .check-box > .box {
+    -fx-background-color: derive(-fx-accent,40%), -fx-background;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * TreeTableView                                                               *
+ *                                                                             *
+ * Note: A lot of the CSS for TreeTableView is included with the TreeView and  *
+ * TableView CSS styles elsewhere in modena.css (as they are the same, just   *
+ * targeting different CSS style classes).                                     *
+ ******************************************************************************/
+
+.tree-table-row-cell {
+    -fx-background: -fx-control-inner-background;
+    -fx-background-color: -fx-background;
+    -fx-padding: 0;
+    -fx-text-fill: -fx-text-background-color;
+    -fx-indent: 1em;
+}
+.tree-table-cell {
+    /* tree-table-cell needs slightly different padding to make the text sit at
+    the right height for the arrow */
+    -fx-padding: 0.25em 0.166667em 0.083em 0.166667em; /* 3 2 1 2 , plus border adds 1px */
+    -fx-background-color: null;
+    -fx-border-color: transparent -fx-table-cell-border-color transparent transparent;
+    -fx-cell-size: 2.0em; /* 24 */
+    -fx-text-fill: -fx-text-background-color;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * Tooltip                                                                     *
+ *                                                                             *
+ ******************************************************************************/
+
+.tooltip {
+    -fx-background: rgba(30,30,30);
+    -fx-text-fill: white;
+    -fx-background-color: rgba(30,30,30,0.8);
+    -fx-background-radius: 6px;
+    -fx-background-insets: 0;
+    -fx-padding: 0.667em 0.75em 0.667em 0.75em; /* 10px */
+    -fx-effect: dropshadow( three-pass-box , rgba(0,0,0,0.5) , 10, 0.0 , 0 , 3 );
+    -fx-font-size: 0.85em;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * Charts                                                                      *
+ *                                                                             *
+ ******************************************************************************/
+
+.chart {
+    -fx-padding: 5px;
+}
+.chart-content {
+    -fx-padding: 10px;
+}
+.chart-title {
+    -fx-font-size: 1.4em;
+}
+.chart-legend {
+   -fx-background-color: -fx-shadow-highlight-color,
+        linear-gradient(to bottom, derive(-fx-background, -10%), derive(-fx-background, -5%)),
+        linear-gradient(from 0px 0px to 0px 4px, derive(-fx-background, -4%), derive(-fx-background, 10%));
+   -fx-background-insets: 0 0 -1 0, 0,1;
+   -fx-background-radius: 4,4,3;
+   -fx-padding: 6px;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * Axis                                                                        *
+ *                                                                             *
+ ******************************************************************************/
+
+.axis {
+    AXIS_COLOR: derive(-fx-background,-20%);
+    -fx-tick-label-font-size: 0.833333em; /* 10px */
+    -fx-tick-label-fill: derive(-fx-text-background-color, 30%);
+}
+.axis:top {
+    -fx-border-color: transparent transparent AXIS_COLOR transparent;
+}
+.axis:right {
+    -fx-border-color: transparent transparent transparent AXIS_COLOR;
+}
+.axis:bottom {
+    -fx-border-color: AXIS_COLOR transparent transparent transparent;
+}
+.axis:left {
+    -fx-border-color: transparent AXIS_COLOR transparent transparent;
+}
+.axis:top > .axis-label,
+.axis:left > .axis-label { 
+    -fx-padding: 0 0 4px 0; 
+}
+.axis:bottom > .axis-label,
+.axis:right > .axis-label { 
+    -fx-padding: 4px 0 0 0; 
+}
+.axis-tick-mark,
+.axis-minor-tick-mark {
+    -fx-fill: null;
+    -fx-stroke: AXIS_COLOR;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * ChartPlot                                                                   *
+ *                                                                             *
+ ******************************************************************************/
+
+.chart-vertical-grid-lines {
+    -fx-stroke: derive(-fx-background,-10%);
+    -fx-stroke-dash-array: 0.25em, 0.25em;
+}
+.chart-horizontal-grid-lines {
+    -fx-stroke: derive(-fx-background,-10%);
+    -fx-stroke-dash-array: 0.25em, 0.25em;
+}
+.chart-alternative-column-fill {
+    -fx-fill: null;
+    -fx-stroke: null;
+}
+.chart-alternative-row-fill {
+    -fx-fill: null;
+    -fx-stroke: null;
+}
+.chart-vertical-zero-line,
+.chart-horizontal-zero-line {
+    -fx-stroke: derive(-fx-text-background-color, 40%);
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * ScatterChart                                                                *
+ *                                                                             *
+ ******************************************************************************/
+
+.chart-symbol { /* solid circle */
+    -fx-background-color: CHART_COLOR_1;
+    -fx-background-radius: 5px;
+    -fx-padding: 5px;
+}
+.default-color1.chart-symbol { /* solid square */
+    -fx-background-color: CHART_COLOR_2;
+    -fx-background-radius: 0;
+}
+.default-color2.chart-symbol { /* solid diamond */
+    -fx-background-color: CHART_COLOR_3;
+    -fx-background-radius: 0;
+    -fx-padding: 7px 5px 7px 5px;
+    -fx-shape: "M5,0 L10,9 L5,18 L0,9 Z";
+}
+.default-color3.chart-symbol { /* cross */
+    -fx-background-color: CHART_COLOR_4;
+    -fx-background-radius: 0;
+    -fx-background-insets: 0;
+    -fx-shape: "M2,0 L5,4 L8,0 L10,0 L10,2 L6,5 L10,8 L10,10 L8,10 L5,6 L2,10 L0,10 L0,8 L4,5 L0,2 L0,0 Z";
+}
+.default-color4.chart-symbol { /* solid triangle */
+    -fx-background-color: CHART_COLOR_5;
+    -fx-background-radius: 0;
+    -fx-background-insets: 0;
+    -fx-shape: "M5,0 L10,8 L0,8 Z";
+}
+.default-color5.chart-symbol { /* hollow circle */
+    -fx-background-color: CHART_COLOR_6, white;
+    -fx-background-insets: 0, 2;
+    -fx-background-radius: 5px;
+    -fx-padding: 5px;
+}
+.default-color6.chart-symbol { /* hollow square */
+    -fx-background-color: CHART_COLOR_7, white;
+    -fx-background-insets: 0, 2;
+    -fx-background-radius: 0;
+}
+.default-color7.chart-symbol { /* hollow diamond */
+    -fx-background-color: CHART_COLOR_8, white;
+    -fx-background-radius: 0;
+    -fx-background-insets: 0, 2.5;
+    -fx-padding: 7px 5px 7px 5px;
+    -fx-shape: "M5,0 L10,9 L5,18 L0,9 Z";
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * LineChart                                                                     *
+ *                                                                             *
+ ******************************************************************************/
+
+.chart-line-symbol {
+    -fx-background-color: CHART_COLOR_1, white;
+    -fx-background-insets: 0, 2;
+    -fx-background-radius: 5px;
+    -fx-padding: 5px;
+}
+.chart-series-line {
+    -fx-stroke: CHART_COLOR_1;
+    -fx-stroke-width: 3px;
+}
+.default-color0.chart-line-symbol { -fx-background-color: CHART_COLOR_1, white; }
+.default-color1.chart-line-symbol { -fx-background-color: CHART_COLOR_2, white; }
+.default-color2.chart-line-symbol { -fx-background-color: CHART_COLOR_3, white; }
+.default-color3.chart-line-symbol { -fx-background-color: CHART_COLOR_4, white; }
+.default-color4.chart-line-symbol { -fx-background-color: CHART_COLOR_5, white; }
+.default-color5.chart-line-symbol { -fx-background-color: CHART_COLOR_6, white; }
+.default-color6.chart-line-symbol { -fx-background-color: CHART_COLOR_7, white; }
+.default-color7.chart-line-symbol { -fx-background-color: CHART_COLOR_8, white; }
+.default-color0.chart-series-line { -fx-stroke: CHART_COLOR_1; }
+.default-color1.chart-series-line { -fx-stroke: CHART_COLOR_2; }
+.default-color2.chart-series-line { -fx-stroke: CHART_COLOR_3; }
+.default-color3.chart-series-line { -fx-stroke: CHART_COLOR_4; }
+.default-color4.chart-series-line { -fx-stroke: CHART_COLOR_5; }
+.default-color5.chart-series-line { -fx-stroke: CHART_COLOR_6; }
+.default-color6.chart-series-line { -fx-stroke: CHART_COLOR_7; }
+.default-color7.chart-series-line { -fx-stroke: CHART_COLOR_8; }
+
+/*******************************************************************************
+ *                                                                             *
+ * AreaChart                                                                   *
+ *                                                                             *
+ ******************************************************************************/
+
+.chart-area-symbol {
+    -fx-background-color: CHART_COLOR_1, white;
+    -fx-background-insets: 0, 1;
+    -fx-background-radius: 4px; /* makes sure this remains circular */
+    -fx-padding: 3px;
+}
+.default-color0.chart-area-symbol { -fx-background-color: CHART_COLOR_1, white; }
+.default-color1.chart-area-symbol { -fx-background-color: CHART_COLOR_2, white; }
+.default-color2.chart-area-symbol { -fx-background-color: CHART_COLOR_3, white; }
+.default-color3.chart-area-symbol { -fx-background-color: CHART_COLOR_4, white; }
+.default-color4.chart-area-symbol { -fx-background-color: CHART_COLOR_5, white; }
+.default-color5.chart-area-symbol { -fx-background-color: CHART_COLOR_6, white; }
+.default-color6.chart-area-symbol { -fx-background-color: CHART_COLOR_7, white; }
+.default-color7.chart-area-symbol { -fx-background-color: CHART_COLOR_8, white; }
+.chart-series-area-line {
+    -fx-stroke: CHART_COLOR_1;
+    -fx-stroke-width: 1px;
+}
+.default-color0.chart-series-area-line { -fx-stroke: CHART_COLOR_1; }
+.default-color1.chart-series-area-line { -fx-stroke: CHART_COLOR_2; }
+.default-color2.chart-series-area-line { -fx-stroke: CHART_COLOR_3; }
+.default-color3.chart-series-area-line { -fx-stroke: CHART_COLOR_4; }
+.default-color4.chart-series-area-line { -fx-stroke: CHART_COLOR_5; }
+.default-color5.chart-series-area-line { -fx-stroke: CHART_COLOR_6; }
+.default-color6.chart-series-area-line { -fx-stroke: CHART_COLOR_7; }
+.default-color7.chart-series-area-line { -fx-stroke: CHART_COLOR_8; }
+.chart-series-area-fill {
+    -fx-stroke: null;
+    -fx-fill: CHART_COLOR_1_TRANS_20;
+}
+.default-color0.chart-series-area-fill { -fx-fill: CHART_COLOR_1_TRANS_20; }
+.default-color1.chart-series-area-fill { -fx-fill: CHART_COLOR_2_TRANS_20; }
+.default-color2.chart-series-area-fill { -fx-fill: CHART_COLOR_3_TRANS_20; }
+.default-color3.chart-series-area-fill { -fx-fill: CHART_COLOR_4_TRANS_20; }
+.default-color4.chart-series-area-fill { -fx-fill: CHART_COLOR_5_TRANS_20; }
+.default-color5.chart-series-area-fill { -fx-fill: CHART_COLOR_6_TRANS_20; }
+.default-color6.chart-series-area-fill { -fx-fill: CHART_COLOR_7_TRANS_20; }
+.default-color7.chart-series-area-fill { -fx-fill: CHART_COLOR_8_TRANS_20; }
+.area-legend-symbol {
+    -fx-padding: 6px;
+    -fx-background-radius: 6px; /* makes sure this remains circular */
+    -fx-background-insets: 0, 3;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * BubbleChart                                                                 *
+ *                                                                             *
+ ******************************************************************************/
+
+.bubble-legend-symbol {
+    -fx-background-radius: 8px;
+    -fx-padding: 8px;
+}
+.chart-bubble {
+    -fx-bubble-fill: CHART_COLOR_1_TRANS_70;
+    -fx-background-color: radial-gradient(center 50% 50%, radius 80%, derive(-fx-bubble-fill,20%), derive(-fx-bubble-fill,-30%));
+}
+.default-color0.chart-bubble { -fx-bubble-fill: CHART_COLOR_1_TRANS_70; }
+.default-color1.chart-bubble { -fx-bubble-fill: CHART_COLOR_2_TRANS_70; }
+.default-color2.chart-bubble { -fx-bubble-fill: CHART_COLOR_3_TRANS_70; }
+.default-color3.chart-bubble { -fx-bubble-fill: CHART_COLOR_4_TRANS_70; }
+.default-color4.chart-bubble { -fx-bubble-fill: CHART_COLOR_5_TRANS_70; }
+.default-color5.chart-bubble { -fx-bubble-fill: CHART_COLOR_6_TRANS_70; }
+.default-color6.chart-bubble { -fx-bubble-fill: CHART_COLOR_7_TRANS_70; }
+.default-color7.chart-bubble { -fx-bubble-fill: CHART_COLOR_8_TRANS_70; }
+
+/*******************************************************************************
+ *                                                                             *
+ * BarChart                                                                    *
+ *                                                                             *
+ ******************************************************************************/
+
+.chart-bar {
+    -fx-bar-fill: CHART_COLOR_1;
+    -fx-background-color:   linear-gradient(to right, 
+                                derive(-fx-bar-fill, -4%),
+                                derive(-fx-bar-fill, -1%),
+                                derive(-fx-bar-fill, 0%),
+                                derive(-fx-bar-fill, -1%),
+                                derive(-fx-bar-fill, -6%)
+                              );
+    -fx-background-insets: 0;
+}
+.chart-bar.negative {
+    -fx-background-insets: 1 0 0 0;
+}
+.bar-chart:horizontal .chart-bar {
+    -fx-background-insets: 0 0 0 1;
+}
+.bar-chart:horizontal .chart-bar, 
+.stacked-bar-chart:horizontal .chart-bar {
+    -fx-background-color:   linear-gradient(to bottom, 
+                                derive(-fx-bar-fill, -4%),
+                                derive(-fx-bar-fill, -1%),
+                                derive(-fx-bar-fill, 0%),
+                                derive(-fx-bar-fill, -1%),
+                                derive(-fx-bar-fill, -6%)
+                              );
+}
+.default-color0.chart-bar { -fx-bar-fill: CHART_COLOR_1; }
+.default-color1.chart-bar { -fx-bar-fill: CHART_COLOR_2; }
+.default-color2.chart-bar { -fx-bar-fill: CHART_COLOR_3; }
+.default-color3.chart-bar { -fx-bar-fill: CHART_COLOR_4; }
+.default-color4.chart-bar { -fx-bar-fill: CHART_COLOR_5; }
+.default-color5.chart-bar { -fx-bar-fill: CHART_COLOR_6; }
+.default-color6.chart-bar { -fx-bar-fill: CHART_COLOR_7; }
+.default-color7.chart-bar { -fx-bar-fill: CHART_COLOR_8; }
+.bar-legend-symbol {
+    -fx-padding: 8px;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * PieChart                                                                    *
+ *                                                                             *
+ ******************************************************************************/
+
+.chart-pie {
+    -fx-pie-color: CHART_COLOR_1;
+    -fx-background-color: radial-gradient(radius 100%, derive(-fx-pie-color,20%), derive(-fx-pie-color,-10%));
+    -fx-background-insets: 1;
+    -fx-border-color: -fx-background;
+}
+.chart-pie-label {
+    -fx-padding: 3px;
+}
+.chart-pie-label-line {
+    -fx-stroke: derive(-fx-background,-20%);
+}
+.default-color0.chart-pie { -fx-pie-color: CHART_COLOR_1; }
+.default-color1.chart-pie { -fx-pie-color: CHART_COLOR_2; }
+.default-color2.chart-pie { -fx-pie-color: CHART_COLOR_3; }
+.default-color3.chart-pie { -fx-pie-color: CHART_COLOR_4; }
+.default-color4.chart-pie { -fx-pie-color: CHART_COLOR_5; }
+.default-color5.chart-pie { -fx-pie-color: CHART_COLOR_6; }
+.default-color6.chart-pie { -fx-pie-color: CHART_COLOR_7; }
+.default-color7.chart-pie { -fx-pie-color: CHART_COLOR_8; }
+.negative.chart-pie {
+    -fx-pie-color: transparent;
+    -fx-background-color: white;
+}
+.pie-legend-symbol.chart-pie {
+    -fx-background-radius: 8px;
+    -fx-padding: 8px;
+    -fx-border-color: null;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * Combinations                                                                *
+ *                                                                             *
+ * This section is for special handling of when one control is nested inside   *
+ * another control. There are many cases where we would end up with ugly       *
+ * double borders that are fixed here.                                         *
+ *                                                                             *
+ ******************************************************************************/
+
+.tab-pane > * > .table-view,
+.tab-pane > * > .tree-table-view,
+.tab-pane > * > .list-view,
+.tab-pane > * > .tree-view,
+.tab-pane > * > .scroll-pane,
+.tab-pane > * > .split-pane,
+.tab-pane > * > .text-area,
+.tab-pane > * > .html-editor,
+.split-pane > * > .tab-pane,
+.split-pane > * > .table-view,
+.split-pane > * > .tree-table-view,
+.split-pane > * > .list-view,
+.split-pane > * > .tree-view,
+.split-pane > * > .scroll-pane,
+.split-pane > * > .split-pane,
+.split-pane > * > .text-area,
+.split-pane > * > .html-editor {
+    -fx-background-insets: 0, 0;
+    -fx-padding: 0;
+ }
+.tab-pane.floating > * > .table-view,
+.tab-pane.floating > * > .tree-table-view,
+.tab-pane.floating > * > .list-view,
+.tab-pane.floating > * > .tree-view,
+.tab-pane.floating > * > .scroll-pane,
+.tab-pane.floating > * > .split-pane,
+.tab-pane.floating > * > .text-area,
+.tab-pane.floating > * > .html-editor {
+    -fx-background-insets: 0, 0;
+    -fx-padding: -1;
+}
+.split-pane > * > .accordion > .titled-pane > *.content {
+    -fx-border-color: null;
+    -fx-border-insets: 0;
+}
+.split-pane > * > .accordion > .titled-pane > .title  {
+    -fx-background-insets: 0,1 0 1 0, 2 1 2 1;
+}
+.split-pane > * > .accordion > .first-titled-pane > .title  {
+    -fx-background-insets: 0,0 0 1 0, 1 1 2 1;
+}
+.split-pane > * > .accordion > .titled-pane:collapsed > .title  {
+    -fx-background-insets: 0,1 0 0 0, 2 1 1 1;
+}
+.split-pane > * > .accordion > .first-titled-pane:collapsed > .title  {
+    -fx-background-insets: 0,0 0 0 0, 1 1 1 1;
+}
+.titled-pane > * > * > .split-pane,
+.titled-pane > * > * > .text-area,
+.titled-pane > * > * > .html-editor,
+.titled-pane > * > * > .list-view,
+.titled-pane > * > * > .tree-view,
+.titled-pane > * > * > .table-view,
+.titled-pane > * > * > .tree-table-view,
+.titled-pane > * > * > .scroll-pane {
+    -fx-background-color: null;
+    -fx-background-insets: 0, 0;
+    -fx-padding: 0;
+}
+.titled-pane > * > * > AnchorPane,
+.titled-pane > * > * > BorderPane,
+.titled-pane > * > * > FlowPane,
+.titled-pane > * > * > GridPane,
+.titled-pane > * > * > HBox,
+.titled-pane > * > * > Pane,
+.titled-pane > * > * > StackPane,
+.titled-pane > * > * > TilePane,
+.titled-pane > * > * > VBox {
+    -fx-padding: 0.8em;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * DatePicker                                                                  *
+ *                                                                             *
+ ******************************************************************************/
+
+.date-picker > .arrow-button > .arrow {
+    -fx-shape: "M0,0v9h9V0H0z M2,8H1V7h1V8z M2,6H1V5h1V6z M2,4H1V3h1V4z M4,8H3V7h1V8z M4,6H3V5h1V6z M4,4H3V3h1V4z M6,8H5V7h1V8z M6,6H5 V5h1V6z M6,4H5V3h1V4z M8,8H7V7h1V8z M8,6H7V5h1V6z M8,4H7V3h1V4z";
+    -fx-background-color: -fx-mark-highlight-color, -fx-mark-color;
+    -fx-background-insets: 1 0 -1 0, 0;
+    -fx-padding: 0.416667em 0.416667em 0.333333em 0.333333em; /* 5 5 4 4 */
+    -fx-scale-shape: true;
+}
+
+.date-picker-popup {
+     -fx-background-color:
+        linear-gradient(to bottom,
+            derive(-fx-color,-17%),
+            derive(-fx-color,-30%)
+        ),
+        -fx-control-inner-background;
+    -fx-background-insets: 0, 1;
+    -fx-background-radius: 0;
+    -fx-alignment: CENTER; /* VBox */
+    -fx-spacing: 0; /* VBox */
+    -fx-padding: 0.083333em; /* 1 1 1 1 */
+    -fx-effect: dropshadow( gaussian , rgba(0,0,0,0.2) , 12, 0.0 , 0 , 8 );
+}
+.date-picker-popup > .month-year-pane {
+    -fx-padding: 0.588883em 0.5em 0.666667em 0.5em; /* 7 6 8 6 */
+    -fx-background-color: derive(-fx-box-border,30%), linear-gradient(to bottom, derive(-fx-base,-3%), derive(-fx-base,5%) 50%, derive(-fx-base,-3%));
+    -fx-background-insets: 0 0 0 0, 0 0 1 0;
+}
+.date-picker-popup > * > .spinner {
+    -fx-spacing: 0.25em; /* 3 */
+    -fx-alignment: CENTER;
+    -fx-fill-height: false;
+}
+.date-picker-popup > * > .spinner > .button {
+    -fx-background-color: -fx-outer-border, -fx-inner-border, -fx-body-color;
+    -fx-background-insets: 0, 1, 2;
+    -fx-color: transparent;
+    -fx-background-radius: 0;
+}
+.date-picker-popup > * > .spinner > .button:focused {
+    -fx-background-color: -fx-focus-color, -fx-inner-border, -fx-body-color, -fx-faint-focus-color, -fx-body-color;
+    -fx-color: -fx-hover-base;
+    -fx-background-insets: -0.2, 1, 2, -1.4, 2.6;
+}
+.date-picker-popup > * > .spinner > .button:hover {
+    -fx-color: -fx-hover-base;
+}
+.date-picker-popup > * > .spinner > .button:armed {
+    -fx-color: -fx-pressed-base;
+}
+.date-picker-popup > * > .spinner > .left-button {
+    -fx-padding: 0 0.333333em 0 0.25em; /* 0 4 0 3 */
+}
+.date-picker-popup > * > .spinner > .right-button {
+    -fx-padding: 0 0.25em 0 0.333333em; /* 0 3 0 4 */
+}
+.date-picker-popup > * > .spinner > .button > .left-arrow,
+.date-picker-popup > * > .spinner > .button > .right-arrow {
+    -fx-background-color: -fx-mark-highlight-color, derive(-fx-base,-45%);
+    -fx-background-insets: 1 0 -1 0, 0;
+    -fx-padding: 0.333333em 0.166667em 0.333333em 0.166667em; /* 4 2 4 2 */
+    -fx-effect: dropshadow(two-pass-box , -fx-shadow-highlight-color, 1, 0.0 , 0, 1.4);
+}
+.date-picker-popup > * > .spinner > .button:hover > .left-arrow,
+.date-picker-popup > * > .spinner > .button:hover > .right-arrow {
+    -fx-background-color: -fx-mark-highlight-color, derive(-fx-base,-50%);
+}
+.date-picker-popup > * > .spinner > .button:pressed > .left-arrow,
+.date-picker-popup > * > .spinner > .button:pressed > .right-arrow {
+    -fx-background-color: -fx-mark-highlight-color, derive(-fx-base,-55%);
+}
+.date-picker-popup > * > .spinner > .button > .left-arrow {
+    -fx-padding: 0.333333em 0.25em 0.333333em 0.166667em; /* 4 3 4 2 */
+    -fx-shape: "M5.997,5.072L5.995,6.501l-2.998-4l2.998-4l0.002,1.43l-1.976,2.57L5.997,5.072z";
+    -fx-scale-shape: true;
+}
+.date-picker-popup > * > .spinner > .button > .right-arrow {
+    -fx-padding: 0.333333em 0.25em 0.333333em 0.166667em; /* 4 3 4 2 */
+    -fx-shape: "M2.998-0.07L3-1.499l2.998,4L3,6.501l-0.002-1.43l1.976-2.57L2.998-0.07z";
+    -fx-scale-shape: true;
+}
+.date-picker-popup > * > .spinner > .label {
+    -fx-alignment: CENTER;
+}
+.date-picker-popup > .month-year-pane > .secondary-label {
+    -fx-alignment: BASELINE_CENTER;
+    -fx-padding: 0.5em 0 0 0; /* 6 0 0 0 */
+    -fx-text-fill: #f3622d;
+}
+
+.date-picker-popup > .calendar-grid {
+    -fx-background-color: derive(-fx-selection-bar-non-focused, 60%);
+    /*-fx-background-insets: 1 0 0 0;*/
+    -fx-padding: 0;
+}
+.date-picker-popup > * > .date-cell { 
+    -fx-background-color: transparent;
+    -fx-background-insets: 1, 2;
+    -fx-padding: 0;
+    -fx-alignment: BASELINE_CENTER;
+    -fx-opacity: 1.0;
+}
+.date-picker-popup > * > .day-name-cell,
+.date-picker-popup > * > .week-number-cell {
+    -fx-font-size: 0.916667em; 
+}
+.date-picker-popup > * > .week-number-cell {
+    -fx-padding: 0.333333em 0.583333em 0.333333em 0.583333em; /* 4 7 4 7 */
+    -fx-border-color: -fx-control-inner-background;
+    -fx-border-width: 1px;
+    -fx-background: -fx-control-inner-background;
+    -fx-background-color: -fx-background;
+    -fx-text-fill: -fx-accent;
+}
+.date-picker-popup > * > .day-cell {
+    -fx-padding: 0.333333em 0.583333em 0.333333em 0.583333em; /* 4 7 4 7 */
+    -fx-border-color: derive(-fx-selection-bar-non-focused, 60%);
+    -fx-border-width: 1px;
+    -fx-font-size: 1em;
+    -fx-background: -fx-control-inner-background;
+    -fx-background-color: -fx-background;
+    -fx-text-fill: -fx-text-background-color;
+}
+.date-picker-popup > * > .hijrah-day-cell {
+    -fx-alignment: TOP_LEFT;
+    -fx-padding: 0.083333em 0.333333em 0.083333em 0.333333em; /* 1 4 1 4 */
+    -fx-cell-size: 2.75em;
+}
+.date-picker-popup > * > .day-cell > .secondary-text {
+    -fx-fill: #f3622d;
+}
+.date-picker-popup > * > .today {
+    -fx-background-color: -fx-control-inner-background, derive(-fx-selection-bar-non-focused, -20%), -fx-control-inner-background;
+    -fx-background-insets: 1, 2, 3;
+}
+.date-picker-popup > * > .day-cell:hover,
+.date-picker-popup > * > .selected,
+.date-picker-popup > * > .previous-month.selected,
+.date-picker-popup > * > .next-month.selected {
+    -fx-background: -fx-selection-bar;
+}
+.date-picker-popup > * > .previous-month:hover,
+.date-picker-popup > * > .next-month:hover {
+    -fx-background: -fx-selection-bar-non-focused;
+}
+.date-picker-popup > * > .today:hover,
+.date-picker-popup > * > .today.selected {
+    -fx-background-color: -fx-selection-bar, derive(-fx-selection-bar-non-focused, -20%),-fx-selection-bar;
+}
+.date-picker-popup > * > .day-cell:focused,
+.date-picker-popup > * > .today:focused {
+    -fx-background-color: -fx-control-inner-background, -fx-cell-focus-inner-border, -fx-control-inner-background;
+    -fx-background-insets: 1, 2, 3;
+}
+.date-picker-popup > * > .day-cell:focused:hover,
+.date-picker-popup > * > .today:focused:hover,
+.date-picker-popup > * > .selected:focused,
+.date-picker-popup > * > .today.selected:focused {
+    -fx-background-color: -fx-selection-bar, -fx-cell-focus-inner-border, -fx-selection-bar;
+}
+.date-picker-popup > * > .previous-month,
+.date-picker-popup > * > .next-month {
+    -fx-background: derive(-fx-control-inner-background, -4%);
+}
+.date-picker-popup > * > .day-cell:hover > .secondary-text,
+.date-picker-popup > * > .previous-month > .secondary-text,
+.date-picker-popup > * > .next-month > .secondary-text,
+.date-picker-popup > * > .selected > .secondary-text {
+    -fx-fill: -fx-text-background-color;
+}
+.date-picker-popup > * > .previous-month.today,
+.date-picker-popup > * > .next-month.today {
+    -fx-background-color: derive(-fx-control-inner-background, -4%), derive(-fx-selection-bar-non-focused, -20%), derive(-fx-control-inner-background, -4%);
+}
+
+.date-picker-popup > * > .previous-month.today:hover,
+.date-picker-popup > * > .next-month.today:hover {
+    -fx-background-color: -fx-selection-bar-non-focused, derive(-fx-selection-bar-non-focused, -20%), -fx-selection-bar-non-focused;
+}
diff --git a/src/main/java/io/bitsquare/msg/Message.java b/gui/src/main/java/io/bitsquare/msg/Message.java
similarity index 100%
rename from src/main/java/io/bitsquare/msg/Message.java
rename to gui/src/main/java/io/bitsquare/msg/Message.java
diff --git a/src/main/java/io/bitsquare/msg/MessageBroker.java b/gui/src/main/java/io/bitsquare/msg/MessageBroker.java
similarity index 100%
rename from src/main/java/io/bitsquare/msg/MessageBroker.java
rename to gui/src/main/java/io/bitsquare/msg/MessageBroker.java
diff --git a/src/main/java/io/bitsquare/msg/MessageModule.java b/gui/src/main/java/io/bitsquare/msg/MessageModule.java
similarity index 100%
rename from src/main/java/io/bitsquare/msg/MessageModule.java
rename to gui/src/main/java/io/bitsquare/msg/MessageModule.java
diff --git a/src/main/java/io/bitsquare/msg/MessageService.java b/gui/src/main/java/io/bitsquare/msg/MessageService.java
similarity index 100%
rename from src/main/java/io/bitsquare/msg/MessageService.java
rename to gui/src/main/java/io/bitsquare/msg/MessageService.java
diff --git a/src/main/java/io/bitsquare/msg/listeners/ArbitratorListener.java b/gui/src/main/java/io/bitsquare/msg/listeners/ArbitratorListener.java
similarity index 100%
rename from src/main/java/io/bitsquare/msg/listeners/ArbitratorListener.java
rename to gui/src/main/java/io/bitsquare/msg/listeners/ArbitratorListener.java
diff --git a/src/main/java/io/bitsquare/msg/listeners/GetPeerAddressListener.java b/gui/src/main/java/io/bitsquare/msg/listeners/GetPeerAddressListener.java
similarity index 100%
rename from src/main/java/io/bitsquare/msg/listeners/GetPeerAddressListener.java
rename to gui/src/main/java/io/bitsquare/msg/listeners/GetPeerAddressListener.java
diff --git a/src/main/java/io/bitsquare/msg/listeners/IncomingMessageListener.java b/gui/src/main/java/io/bitsquare/msg/listeners/IncomingMessageListener.java
similarity index 100%
rename from src/main/java/io/bitsquare/msg/listeners/IncomingMessageListener.java
rename to gui/src/main/java/io/bitsquare/msg/listeners/IncomingMessageListener.java
diff --git a/src/main/java/io/bitsquare/msg/listeners/OutgoingMessageListener.java b/gui/src/main/java/io/bitsquare/msg/listeners/OutgoingMessageListener.java
similarity index 100%
rename from src/main/java/io/bitsquare/msg/listeners/OutgoingMessageListener.java
rename to gui/src/main/java/io/bitsquare/msg/listeners/OutgoingMessageListener.java
diff --git a/src/main/java/io/bitsquare/msg/listeners/TakeOfferRequestListener.java b/gui/src/main/java/io/bitsquare/msg/listeners/TakeOfferRequestListener.java
similarity index 100%
rename from src/main/java/io/bitsquare/msg/listeners/TakeOfferRequestListener.java
rename to gui/src/main/java/io/bitsquare/msg/listeners/TakeOfferRequestListener.java
diff --git a/src/main/java/io/bitsquare/msg/tomp2p/BootstrappedPeerBuilder.java b/gui/src/main/java/io/bitsquare/msg/tomp2p/BootstrappedPeerBuilder.java
similarity index 100%
rename from src/main/java/io/bitsquare/msg/tomp2p/BootstrappedPeerBuilder.java
rename to gui/src/main/java/io/bitsquare/msg/tomp2p/BootstrappedPeerBuilder.java
diff --git a/src/main/java/io/bitsquare/msg/tomp2p/TomP2PMessageModule.java b/gui/src/main/java/io/bitsquare/msg/tomp2p/TomP2PMessageModule.java
similarity index 100%
rename from src/main/java/io/bitsquare/msg/tomp2p/TomP2PMessageModule.java
rename to gui/src/main/java/io/bitsquare/msg/tomp2p/TomP2PMessageModule.java
diff --git a/src/main/java/io/bitsquare/msg/tomp2p/TomP2PMessageService.java b/gui/src/main/java/io/bitsquare/msg/tomp2p/TomP2PMessageService.java
similarity index 100%
rename from src/main/java/io/bitsquare/msg/tomp2p/TomP2PMessageService.java
rename to gui/src/main/java/io/bitsquare/msg/tomp2p/TomP2PMessageService.java
diff --git a/src/main/java/io/bitsquare/msg/tomp2p/TomP2PNode.java b/gui/src/main/java/io/bitsquare/msg/tomp2p/TomP2PNode.java
similarity index 100%
rename from src/main/java/io/bitsquare/msg/tomp2p/TomP2PNode.java
rename to gui/src/main/java/io/bitsquare/msg/tomp2p/TomP2PNode.java
diff --git a/src/main/java/io/bitsquare/network/BootstrapNodes.java b/gui/src/main/java/io/bitsquare/network/BootstrapNodes.java
similarity index 100%
rename from src/main/java/io/bitsquare/network/BootstrapNodes.java
rename to gui/src/main/java/io/bitsquare/network/BootstrapNodes.java
diff --git a/src/main/java/io/bitsquare/network/BootstrapState.java b/gui/src/main/java/io/bitsquare/network/BootstrapState.java
similarity index 100%
rename from src/main/java/io/bitsquare/network/BootstrapState.java
rename to gui/src/main/java/io/bitsquare/network/BootstrapState.java
diff --git a/src/main/java/io/bitsquare/network/ClientNode.java b/gui/src/main/java/io/bitsquare/network/ClientNode.java
similarity index 100%
rename from src/main/java/io/bitsquare/network/ClientNode.java
rename to gui/src/main/java/io/bitsquare/network/ClientNode.java
diff --git a/src/main/java/io/bitsquare/network/ConnectionType.java b/gui/src/main/java/io/bitsquare/network/ConnectionType.java
similarity index 100%
rename from src/main/java/io/bitsquare/network/ConnectionType.java
rename to gui/src/main/java/io/bitsquare/network/ConnectionType.java
diff --git a/src/main/java/io/bitsquare/network/NetworkException.java b/gui/src/main/java/io/bitsquare/network/NetworkException.java
similarity index 100%
rename from src/main/java/io/bitsquare/network/NetworkException.java
rename to gui/src/main/java/io/bitsquare/network/NetworkException.java
diff --git a/src/main/java/io/bitsquare/network/Node.java b/gui/src/main/java/io/bitsquare/network/Node.java
similarity index 100%
rename from src/main/java/io/bitsquare/network/Node.java
rename to gui/src/main/java/io/bitsquare/network/Node.java
diff --git a/src/main/java/io/bitsquare/network/Peer.java b/gui/src/main/java/io/bitsquare/network/Peer.java
similarity index 100%
rename from src/main/java/io/bitsquare/network/Peer.java
rename to gui/src/main/java/io/bitsquare/network/Peer.java
diff --git a/src/main/java/io/bitsquare/network/tomp2p/TomP2PPeer.java b/gui/src/main/java/io/bitsquare/network/tomp2p/TomP2PPeer.java
similarity index 100%
rename from src/main/java/io/bitsquare/network/tomp2p/TomP2PPeer.java
rename to gui/src/main/java/io/bitsquare/network/tomp2p/TomP2PPeer.java
diff --git a/src/main/java/io/bitsquare/offer/Direction.java b/gui/src/main/java/io/bitsquare/offer/Direction.java
similarity index 100%
rename from src/main/java/io/bitsquare/offer/Direction.java
rename to gui/src/main/java/io/bitsquare/offer/Direction.java
diff --git a/src/main/java/io/bitsquare/offer/Offer.java b/gui/src/main/java/io/bitsquare/offer/Offer.java
similarity index 100%
rename from src/main/java/io/bitsquare/offer/Offer.java
rename to gui/src/main/java/io/bitsquare/offer/Offer.java
diff --git a/src/main/java/io/bitsquare/offer/OfferModule.java b/gui/src/main/java/io/bitsquare/offer/OfferModule.java
similarity index 100%
rename from src/main/java/io/bitsquare/offer/OfferModule.java
rename to gui/src/main/java/io/bitsquare/offer/OfferModule.java
diff --git a/src/main/java/io/bitsquare/offer/OfferRepository.java b/gui/src/main/java/io/bitsquare/offer/OfferRepository.java
similarity index 100%
rename from src/main/java/io/bitsquare/offer/OfferRepository.java
rename to gui/src/main/java/io/bitsquare/offer/OfferRepository.java
diff --git a/src/main/java/io/bitsquare/offer/tomp2p/TomP2POfferModule.java b/gui/src/main/java/io/bitsquare/offer/tomp2p/TomP2POfferModule.java
similarity index 100%
rename from src/main/java/io/bitsquare/offer/tomp2p/TomP2POfferModule.java
rename to gui/src/main/java/io/bitsquare/offer/tomp2p/TomP2POfferModule.java
diff --git a/src/main/java/io/bitsquare/offer/tomp2p/TomP2POfferRepository.java b/gui/src/main/java/io/bitsquare/offer/tomp2p/TomP2POfferRepository.java
similarity index 100%
rename from src/main/java/io/bitsquare/offer/tomp2p/TomP2POfferRepository.java
rename to gui/src/main/java/io/bitsquare/offer/tomp2p/TomP2POfferRepository.java
diff --git a/src/main/java/io/bitsquare/persistence/Persistence.java b/gui/src/main/java/io/bitsquare/persistence/Persistence.java
similarity index 100%
rename from src/main/java/io/bitsquare/persistence/Persistence.java
rename to gui/src/main/java/io/bitsquare/persistence/Persistence.java
diff --git a/src/main/java/io/bitsquare/settings/Preferences.java b/gui/src/main/java/io/bitsquare/settings/Preferences.java
similarity index 100%
rename from src/main/java/io/bitsquare/settings/Preferences.java
rename to gui/src/main/java/io/bitsquare/settings/Preferences.java
diff --git a/src/main/java/io/bitsquare/trade/Contract.java b/gui/src/main/java/io/bitsquare/trade/Contract.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/Contract.java
rename to gui/src/main/java/io/bitsquare/trade/Contract.java
diff --git a/src/main/java/io/bitsquare/trade/Trade.java b/gui/src/main/java/io/bitsquare/trade/Trade.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/Trade.java
rename to gui/src/main/java/io/bitsquare/trade/Trade.java
diff --git a/src/main/java/io/bitsquare/trade/TradeManager.java b/gui/src/main/java/io/bitsquare/trade/TradeManager.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/TradeManager.java
rename to gui/src/main/java/io/bitsquare/trade/TradeManager.java
diff --git a/src/main/java/io/bitsquare/trade/TradeModule.java b/gui/src/main/java/io/bitsquare/trade/TradeModule.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/TradeModule.java
rename to gui/src/main/java/io/bitsquare/trade/TradeModule.java
diff --git a/src/main/java/io/bitsquare/trade/handlers/TransactionResultHandler.java b/gui/src/main/java/io/bitsquare/trade/handlers/TransactionResultHandler.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/handlers/TransactionResultHandler.java
rename to gui/src/main/java/io/bitsquare/trade/handlers/TransactionResultHandler.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/createoffer/CreateOfferCoordinator.java b/gui/src/main/java/io/bitsquare/trade/protocol/createoffer/CreateOfferCoordinator.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/createoffer/CreateOfferCoordinator.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/createoffer/CreateOfferCoordinator.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/TradeMessage.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/TradeMessage.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/TradeMessage.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/TradeMessage.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/offerer/BuyerAcceptsOfferProtocol.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/BuyerAcceptsOfferProtocol.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/offerer/BuyerAcceptsOfferProtocol.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/BuyerAcceptsOfferProtocol.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/offerer/BuyerAcceptsOfferProtocolListener.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/BuyerAcceptsOfferProtocolListener.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/offerer/BuyerAcceptsOfferProtocolListener.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/BuyerAcceptsOfferProtocolListener.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/offerer/messages/BankTransferInitedMessage.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/messages/BankTransferInitedMessage.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/offerer/messages/BankTransferInitedMessage.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/messages/BankTransferInitedMessage.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/offerer/messages/DepositTxPublishedMessage.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/messages/DepositTxPublishedMessage.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/offerer/messages/DepositTxPublishedMessage.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/messages/DepositTxPublishedMessage.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/offerer/messages/RequestTakerDepositPaymentMessage.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/messages/RequestTakerDepositPaymentMessage.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/offerer/messages/RequestTakerDepositPaymentMessage.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/messages/RequestTakerDepositPaymentMessage.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/offerer/messages/RespondToIsOfferAvailableMessage.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/messages/RespondToIsOfferAvailableMessage.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/offerer/messages/RespondToIsOfferAvailableMessage.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/messages/RespondToIsOfferAvailableMessage.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/offerer/messages/RespondToTakeOfferRequestMessage.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/messages/RespondToTakeOfferRequestMessage.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/offerer/messages/RespondToTakeOfferRequestMessage.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/messages/RespondToTakeOfferRequestMessage.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/CreateDepositTx.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/CreateDepositTx.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/CreateDepositTx.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/CreateDepositTx.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/HandleTakeOfferRequest.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/HandleTakeOfferRequest.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/HandleTakeOfferRequest.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/HandleTakeOfferRequest.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/RequestTakerDepositPayment.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/RequestTakerDepositPayment.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/RequestTakerDepositPayment.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/RequestTakerDepositPayment.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SendDepositTxIdToTaker.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SendDepositTxIdToTaker.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SendDepositTxIdToTaker.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SendDepositTxIdToTaker.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SendSignedPayoutTx.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SendSignedPayoutTx.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SendSignedPayoutTx.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SendSignedPayoutTx.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SetupListenerForBlockChainConfirmation.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SetupListenerForBlockChainConfirmation.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SetupListenerForBlockChainConfirmation.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SetupListenerForBlockChainConfirmation.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SignAndPublishDepositTx.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SignAndPublishDepositTx.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SignAndPublishDepositTx.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SignAndPublishDepositTx.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/VerifyAndSignContract.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/VerifyAndSignContract.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/VerifyAndSignContract.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/VerifyAndSignContract.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/VerifyTakeOfferFeePayment.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/VerifyTakeOfferFeePayment.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/VerifyTakeOfferFeePayment.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/VerifyTakeOfferFeePayment.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/VerifyTakerAccount.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/VerifyTakerAccount.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/VerifyTakerAccount.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/VerifyTakerAccount.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/shared/tasks/VerifyPeerAccount.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/shared/tasks/VerifyPeerAccount.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/shared/tasks/VerifyPeerAccount.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/shared/tasks/VerifyPeerAccount.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/taker/SellerTakesOfferProtocol.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/SellerTakesOfferProtocol.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/taker/SellerTakesOfferProtocol.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/SellerTakesOfferProtocol.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/taker/SellerTakesOfferProtocolListener.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/SellerTakesOfferProtocolListener.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/taker/SellerTakesOfferProtocolListener.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/SellerTakesOfferProtocolListener.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/taker/messages/PayoutTxPublishedMessage.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/messages/PayoutTxPublishedMessage.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/taker/messages/PayoutTxPublishedMessage.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/messages/PayoutTxPublishedMessage.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/taker/messages/RequestIsOfferAvailableMessage.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/messages/RequestIsOfferAvailableMessage.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/taker/messages/RequestIsOfferAvailableMessage.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/messages/RequestIsOfferAvailableMessage.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/taker/messages/RequestOffererPublishDepositTxMessage.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/messages/RequestOffererPublishDepositTxMessage.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/taker/messages/RequestOffererPublishDepositTxMessage.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/messages/RequestOffererPublishDepositTxMessage.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/taker/messages/RequestTakeOfferMessage.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/messages/RequestTakeOfferMessage.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/taker/messages/RequestTakeOfferMessage.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/messages/RequestTakeOfferMessage.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/taker/messages/TakeOfferFeePayedMessage.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/messages/TakeOfferFeePayedMessage.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/taker/messages/TakeOfferFeePayedMessage.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/messages/TakeOfferFeePayedMessage.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/CreateAndSignContract.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/CreateAndSignContract.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/CreateAndSignContract.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/CreateAndSignContract.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/GetPeerAddress.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/GetPeerAddress.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/GetPeerAddress.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/GetPeerAddress.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/PayDeposit.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/PayDeposit.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/PayDeposit.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/PayDeposit.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/PayTakeOfferFee.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/PayTakeOfferFee.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/PayTakeOfferFee.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/PayTakeOfferFee.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/RequestTakeOffer.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/RequestTakeOffer.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/RequestTakeOffer.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/RequestTakeOffer.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/SendPayoutTxToOfferer.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/SendPayoutTxToOfferer.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/SendPayoutTxToOfferer.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/SendPayoutTxToOfferer.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/SendSignedTakerDepositTxAsHex.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/SendSignedTakerDepositTxAsHex.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/SendSignedTakerDepositTxAsHex.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/SendSignedTakerDepositTxAsHex.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/SendTakeOfferFeePayedTxId.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/SendTakeOfferFeePayedTxId.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/SendTakeOfferFeePayedTxId.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/SendTakeOfferFeePayedTxId.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/SignAndPublishPayoutTx.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/SignAndPublishPayoutTx.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/SignAndPublishPayoutTx.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/SignAndPublishPayoutTx.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/VerifyOffererAccount.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/VerifyOffererAccount.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/VerifyOffererAccount.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/VerifyOffererAccount.java
diff --git a/src/main/java/io/bitsquare/user/User.java b/gui/src/main/java/io/bitsquare/user/User.java
similarity index 100%
rename from src/main/java/io/bitsquare/user/User.java
rename to gui/src/main/java/io/bitsquare/user/User.java
diff --git a/src/main/java/io/bitsquare/util/DSAKeyUtil.java b/gui/src/main/java/io/bitsquare/util/DSAKeyUtil.java
similarity index 100%
rename from src/main/java/io/bitsquare/util/DSAKeyUtil.java
rename to gui/src/main/java/io/bitsquare/util/DSAKeyUtil.java
diff --git a/src/main/java/io/bitsquare/util/DesktopUtil.java b/gui/src/main/java/io/bitsquare/util/DesktopUtil.java
similarity index 100%
rename from src/main/java/io/bitsquare/util/DesktopUtil.java
rename to gui/src/main/java/io/bitsquare/util/DesktopUtil.java
diff --git a/src/main/java/io/bitsquare/util/MessageHandler.java b/gui/src/main/java/io/bitsquare/util/MessageHandler.java
similarity index 100%
rename from src/main/java/io/bitsquare/util/MessageHandler.java
rename to gui/src/main/java/io/bitsquare/util/MessageHandler.java
diff --git a/src/main/java/io/bitsquare/util/Utilities.java b/gui/src/main/java/io/bitsquare/util/Utilities.java
similarity index 100%
rename from src/main/java/io/bitsquare/util/Utilities.java
rename to gui/src/main/java/io/bitsquare/util/Utilities.java
diff --git a/src/main/java/io/bitsquare/util/Validator.java b/gui/src/main/java/io/bitsquare/util/Validator.java
similarity index 100%
rename from src/main/java/io/bitsquare/util/Validator.java
rename to gui/src/main/java/io/bitsquare/util/Validator.java
diff --git a/src/main/java/io/bitsquare/util/joptsimple/EnumValueConverter.java b/gui/src/main/java/io/bitsquare/util/joptsimple/EnumValueConverter.java
similarity index 100%
rename from src/main/java/io/bitsquare/util/joptsimple/EnumValueConverter.java
rename to gui/src/main/java/io/bitsquare/util/joptsimple/EnumValueConverter.java
diff --git a/src/main/java/io/bitsquare/util/spring/JOptCommandLinePropertySource.java b/gui/src/main/java/io/bitsquare/util/spring/JOptCommandLinePropertySource.java
similarity index 100%
rename from src/main/java/io/bitsquare/util/spring/JOptCommandLinePropertySource.java
rename to gui/src/main/java/io/bitsquare/util/spring/JOptCommandLinePropertySource.java
diff --git a/src/main/java/io/bitsquare/util/task/ErrorMessageHandler.java b/gui/src/main/java/io/bitsquare/util/task/ErrorMessageHandler.java
similarity index 100%
rename from src/main/java/io/bitsquare/util/task/ErrorMessageHandler.java
rename to gui/src/main/java/io/bitsquare/util/task/ErrorMessageHandler.java
diff --git a/src/main/java/io/bitsquare/util/task/ExceptionHandler.java b/gui/src/main/java/io/bitsquare/util/task/ExceptionHandler.java
similarity index 100%
rename from src/main/java/io/bitsquare/util/task/ExceptionHandler.java
rename to gui/src/main/java/io/bitsquare/util/task/ExceptionHandler.java
diff --git a/src/main/java/io/bitsquare/util/task/FaultHandler.java b/gui/src/main/java/io/bitsquare/util/task/FaultHandler.java
similarity index 100%
rename from src/main/java/io/bitsquare/util/task/FaultHandler.java
rename to gui/src/main/java/io/bitsquare/util/task/FaultHandler.java
diff --git a/src/main/java/io/bitsquare/util/task/ResultHandler.java b/gui/src/main/java/io/bitsquare/util/task/ResultHandler.java
similarity index 100%
rename from src/main/java/io/bitsquare/util/task/ResultHandler.java
rename to gui/src/main/java/io/bitsquare/util/task/ResultHandler.java
diff --git a/src/main/java/viewfx/ViewfxException.java b/gui/src/main/java/viewfx/ViewfxException.java
similarity index 100%
rename from src/main/java/viewfx/ViewfxException.java
rename to gui/src/main/java/viewfx/ViewfxException.java
diff --git a/src/main/java/viewfx/model/Activatable.java b/gui/src/main/java/viewfx/model/Activatable.java
similarity index 100%
rename from src/main/java/viewfx/model/Activatable.java
rename to gui/src/main/java/viewfx/model/Activatable.java
diff --git a/src/main/java/viewfx/model/DataModel.java b/gui/src/main/java/viewfx/model/DataModel.java
similarity index 100%
rename from src/main/java/viewfx/model/DataModel.java
rename to gui/src/main/java/viewfx/model/DataModel.java
diff --git a/src/main/java/viewfx/model/Model.java b/gui/src/main/java/viewfx/model/Model.java
similarity index 100%
rename from src/main/java/viewfx/model/Model.java
rename to gui/src/main/java/viewfx/model/Model.java
diff --git a/src/main/java/viewfx/model/ViewModel.java b/gui/src/main/java/viewfx/model/ViewModel.java
similarity index 100%
rename from src/main/java/viewfx/model/ViewModel.java
rename to gui/src/main/java/viewfx/model/ViewModel.java
diff --git a/src/main/java/viewfx/model/support/ActivatableWithDelegate.java b/gui/src/main/java/viewfx/model/support/ActivatableWithDelegate.java
similarity index 100%
rename from src/main/java/viewfx/model/support/ActivatableWithDelegate.java
rename to gui/src/main/java/viewfx/model/support/ActivatableWithDelegate.java
diff --git a/src/main/java/viewfx/model/support/WithDelegate.java b/gui/src/main/java/viewfx/model/support/WithDelegate.java
similarity index 100%
rename from src/main/java/viewfx/model/support/WithDelegate.java
rename to gui/src/main/java/viewfx/model/support/WithDelegate.java
diff --git a/src/main/java/viewfx/view/DefaultPathConvention.java b/gui/src/main/java/viewfx/view/DefaultPathConvention.java
similarity index 100%
rename from src/main/java/viewfx/view/DefaultPathConvention.java
rename to gui/src/main/java/viewfx/view/DefaultPathConvention.java
diff --git a/src/main/java/viewfx/view/FxmlView.java b/gui/src/main/java/viewfx/view/FxmlView.java
similarity index 100%
rename from src/main/java/viewfx/view/FxmlView.java
rename to gui/src/main/java/viewfx/view/FxmlView.java
diff --git a/src/main/java/viewfx/view/View.java b/gui/src/main/java/viewfx/view/View.java
similarity index 100%
rename from src/main/java/viewfx/view/View.java
rename to gui/src/main/java/viewfx/view/View.java
diff --git a/src/main/java/viewfx/view/ViewFactory.java b/gui/src/main/java/viewfx/view/ViewFactory.java
similarity index 100%
rename from src/main/java/viewfx/view/ViewFactory.java
rename to gui/src/main/java/viewfx/view/ViewFactory.java
diff --git a/src/main/java/viewfx/view/ViewLoader.java b/gui/src/main/java/viewfx/view/ViewLoader.java
similarity index 100%
rename from src/main/java/viewfx/view/ViewLoader.java
rename to gui/src/main/java/viewfx/view/ViewLoader.java
diff --git a/src/main/java/viewfx/view/ViewPath.java b/gui/src/main/java/viewfx/view/ViewPath.java
similarity index 100%
rename from src/main/java/viewfx/view/ViewPath.java
rename to gui/src/main/java/viewfx/view/ViewPath.java
diff --git a/src/main/java/viewfx/view/Wizard.java b/gui/src/main/java/viewfx/view/Wizard.java
similarity index 100%
rename from src/main/java/viewfx/view/Wizard.java
rename to gui/src/main/java/viewfx/view/Wizard.java
diff --git a/src/main/java/viewfx/view/support/AbstractView.java b/gui/src/main/java/viewfx/view/support/AbstractView.java
similarity index 100%
rename from src/main/java/viewfx/view/support/AbstractView.java
rename to gui/src/main/java/viewfx/view/support/AbstractView.java
diff --git a/src/main/java/viewfx/view/support/ActivatableView.java b/gui/src/main/java/viewfx/view/support/ActivatableView.java
similarity index 100%
rename from src/main/java/viewfx/view/support/ActivatableView.java
rename to gui/src/main/java/viewfx/view/support/ActivatableView.java
diff --git a/src/main/java/viewfx/view/support/ActivatableViewAndModel.java b/gui/src/main/java/viewfx/view/support/ActivatableViewAndModel.java
similarity index 100%
rename from src/main/java/viewfx/view/support/ActivatableViewAndModel.java
rename to gui/src/main/java/viewfx/view/support/ActivatableViewAndModel.java
diff --git a/src/main/java/viewfx/view/support/CachingViewLoader.java b/gui/src/main/java/viewfx/view/support/CachingViewLoader.java
similarity index 100%
rename from src/main/java/viewfx/view/support/CachingViewLoader.java
rename to gui/src/main/java/viewfx/view/support/CachingViewLoader.java
diff --git a/src/main/java/viewfx/view/support/InitializableView.java b/gui/src/main/java/viewfx/view/support/InitializableView.java
similarity index 100%
rename from src/main/java/viewfx/view/support/InitializableView.java
rename to gui/src/main/java/viewfx/view/support/InitializableView.java
diff --git a/src/main/java/viewfx/view/support/fxml/FxmlViewLoader.java b/gui/src/main/java/viewfx/view/support/fxml/FxmlViewLoader.java
similarity index 100%
rename from src/main/java/viewfx/view/support/fxml/FxmlViewLoader.java
rename to gui/src/main/java/viewfx/view/support/fxml/FxmlViewLoader.java
diff --git a/src/main/java/viewfx/view/support/guice/InjectorViewFactory.java b/gui/src/main/java/viewfx/view/support/guice/InjectorViewFactory.java
similarity index 100%
rename from src/main/java/viewfx/view/support/guice/InjectorViewFactory.java
rename to gui/src/main/java/viewfx/view/support/guice/InjectorViewFactory.java
diff --git a/src/main/resources/bitsquare.properties b/gui/src/main/resources/bitsquare.properties
similarity index 100%
rename from src/main/resources/bitsquare.properties
rename to gui/src/main/resources/bitsquare.properties
diff --git a/src/main/resources/i18n/displayStrings.properties b/gui/src/main/resources/i18n/displayStrings.properties
similarity index 100%
rename from src/main/resources/i18n/displayStrings.properties
rename to gui/src/main/resources/i18n/displayStrings.properties
diff --git a/src/main/resources/i18n/displayStrings_de.properties b/gui/src/main/resources/i18n/displayStrings_de.properties
similarity index 100%
rename from src/main/resources/i18n/displayStrings_de.properties
rename to gui/src/main/resources/i18n/displayStrings_de.properties
diff --git a/src/main/resources/i18n/displayStrings_es.properties b/gui/src/main/resources/i18n/displayStrings_es.properties
similarity index 100%
rename from src/main/resources/i18n/displayStrings_es.properties
rename to gui/src/main/resources/i18n/displayStrings_es.properties
diff --git a/src/main/resources/i18n/displayStrings_sv_SE.properties b/gui/src/main/resources/i18n/displayStrings_sv_SE.properties
similarity index 100%
rename from src/main/resources/i18n/displayStrings_sv_SE.properties
rename to gui/src/main/resources/i18n/displayStrings_sv_SE.properties
diff --git a/src/main/resources/images/alert_round.png b/gui/src/main/resources/images/alert_round.png
similarity index 100%
rename from src/main/resources/images/alert_round.png
rename to gui/src/main/resources/images/alert_round.png
diff --git a/src/main/resources/images/alert_round@2x.png b/gui/src/main/resources/images/alert_round@2x.png
similarity index 100%
rename from src/main/resources/images/alert_round@2x.png
rename to gui/src/main/resources/images/alert_round@2x.png
diff --git a/src/main/resources/images/arrow_blue.png b/gui/src/main/resources/images/arrow_blue.png
similarity index 100%
rename from src/main/resources/images/arrow_blue.png
rename to gui/src/main/resources/images/arrow_blue.png
diff --git a/src/main/resources/images/arrow_blue@2x.png b/gui/src/main/resources/images/arrow_blue@2x.png
similarity index 100%
rename from src/main/resources/images/arrow_blue@2x.png
rename to gui/src/main/resources/images/arrow_blue@2x.png
diff --git a/src/main/resources/images/arrow_grey.png b/gui/src/main/resources/images/arrow_grey.png
similarity index 100%
rename from src/main/resources/images/arrow_grey.png
rename to gui/src/main/resources/images/arrow_grey.png
diff --git a/src/main/resources/images/arrow_grey@2x.png b/gui/src/main/resources/images/arrow_grey@2x.png
similarity index 100%
rename from src/main/resources/images/arrow_grey@2x.png
rename to gui/src/main/resources/images/arrow_grey@2x.png
diff --git a/src/main/resources/images/buy.png b/gui/src/main/resources/images/buy.png
similarity index 100%
rename from src/main/resources/images/buy.png
rename to gui/src/main/resources/images/buy.png
diff --git a/src/main/resources/images/buy@2x.png b/gui/src/main/resources/images/buy@2x.png
similarity index 100%
rename from src/main/resources/images/buy@2x.png
rename to gui/src/main/resources/images/buy@2x.png
diff --git a/src/main/resources/images/buy_large.png b/gui/src/main/resources/images/buy_large.png
similarity index 100%
rename from src/main/resources/images/buy_large.png
rename to gui/src/main/resources/images/buy_large.png
diff --git a/src/main/resources/images/buy_large@2x.png b/gui/src/main/resources/images/buy_large@2x.png
similarity index 100%
rename from src/main/resources/images/buy_large@2x.png
rename to gui/src/main/resources/images/buy_large@2x.png
diff --git a/src/main/resources/images/collapse.png b/gui/src/main/resources/images/collapse.png
similarity index 100%
rename from src/main/resources/images/collapse.png
rename to gui/src/main/resources/images/collapse.png
diff --git a/src/main/resources/images/collapse@2x.png b/gui/src/main/resources/images/collapse@2x.png
similarity index 100%
rename from src/main/resources/images/collapse@2x.png
rename to gui/src/main/resources/images/collapse@2x.png
diff --git a/src/main/resources/images/connection/direct.png b/gui/src/main/resources/images/connection/direct.png
similarity index 100%
rename from src/main/resources/images/connection/direct.png
rename to gui/src/main/resources/images/connection/direct.png
diff --git a/src/main/resources/images/connection/direct@2x.png b/gui/src/main/resources/images/connection/direct@2x.png
similarity index 100%
rename from src/main/resources/images/connection/direct@2x.png
rename to gui/src/main/resources/images/connection/direct@2x.png
diff --git a/src/main/resources/images/connection/nat.png b/gui/src/main/resources/images/connection/nat.png
similarity index 100%
rename from src/main/resources/images/connection/nat.png
rename to gui/src/main/resources/images/connection/nat.png
diff --git a/src/main/resources/images/connection/nat@2x.png b/gui/src/main/resources/images/connection/nat@2x.png
similarity index 100%
rename from src/main/resources/images/connection/nat@2x.png
rename to gui/src/main/resources/images/connection/nat@2x.png
diff --git a/src/main/resources/images/connection/relay.png b/gui/src/main/resources/images/connection/relay.png
similarity index 100%
rename from src/main/resources/images/connection/relay.png
rename to gui/src/main/resources/images/connection/relay.png
diff --git a/src/main/resources/images/connection/relay@2x.png b/gui/src/main/resources/images/connection/relay@2x.png
similarity index 100%
rename from src/main/resources/images/connection/relay@2x.png
rename to gui/src/main/resources/images/connection/relay@2x.png
diff --git a/src/main/resources/images/connection/synced.png b/gui/src/main/resources/images/connection/synced.png
similarity index 100%
rename from src/main/resources/images/connection/synced.png
rename to gui/src/main/resources/images/connection/synced.png
diff --git a/src/main/resources/images/connection/synced@2x.png b/gui/src/main/resources/images/connection/synced@2x.png
similarity index 100%
rename from src/main/resources/images/connection/synced@2x.png
rename to gui/src/main/resources/images/connection/synced@2x.png
diff --git a/src/main/resources/images/countries/ad.png b/gui/src/main/resources/images/countries/ad.png
similarity index 100%
rename from src/main/resources/images/countries/ad.png
rename to gui/src/main/resources/images/countries/ad.png
diff --git a/src/main/resources/images/countries/ae.png b/gui/src/main/resources/images/countries/ae.png
similarity index 100%
rename from src/main/resources/images/countries/ae.png
rename to gui/src/main/resources/images/countries/ae.png
diff --git a/src/main/resources/images/countries/af.png b/gui/src/main/resources/images/countries/af.png
similarity index 100%
rename from src/main/resources/images/countries/af.png
rename to gui/src/main/resources/images/countries/af.png
diff --git a/src/main/resources/images/countries/ag.png b/gui/src/main/resources/images/countries/ag.png
similarity index 100%
rename from src/main/resources/images/countries/ag.png
rename to gui/src/main/resources/images/countries/ag.png
diff --git a/src/main/resources/images/countries/ai.png b/gui/src/main/resources/images/countries/ai.png
similarity index 100%
rename from src/main/resources/images/countries/ai.png
rename to gui/src/main/resources/images/countries/ai.png
diff --git a/src/main/resources/images/countries/al.png b/gui/src/main/resources/images/countries/al.png
similarity index 100%
rename from src/main/resources/images/countries/al.png
rename to gui/src/main/resources/images/countries/al.png
diff --git a/src/main/resources/images/countries/am.png b/gui/src/main/resources/images/countries/am.png
similarity index 100%
rename from src/main/resources/images/countries/am.png
rename to gui/src/main/resources/images/countries/am.png
diff --git a/src/main/resources/images/countries/an.png b/gui/src/main/resources/images/countries/an.png
similarity index 100%
rename from src/main/resources/images/countries/an.png
rename to gui/src/main/resources/images/countries/an.png
diff --git a/src/main/resources/images/countries/ao.png b/gui/src/main/resources/images/countries/ao.png
similarity index 100%
rename from src/main/resources/images/countries/ao.png
rename to gui/src/main/resources/images/countries/ao.png
diff --git a/src/main/resources/images/countries/ar.png b/gui/src/main/resources/images/countries/ar.png
similarity index 100%
rename from src/main/resources/images/countries/ar.png
rename to gui/src/main/resources/images/countries/ar.png
diff --git a/src/main/resources/images/countries/as.png b/gui/src/main/resources/images/countries/as.png
similarity index 100%
rename from src/main/resources/images/countries/as.png
rename to gui/src/main/resources/images/countries/as.png
diff --git a/src/main/resources/images/countries/at.png b/gui/src/main/resources/images/countries/at.png
similarity index 100%
rename from src/main/resources/images/countries/at.png
rename to gui/src/main/resources/images/countries/at.png
diff --git a/src/main/resources/images/countries/au.png b/gui/src/main/resources/images/countries/au.png
similarity index 100%
rename from src/main/resources/images/countries/au.png
rename to gui/src/main/resources/images/countries/au.png
diff --git a/src/main/resources/images/countries/aw.png b/gui/src/main/resources/images/countries/aw.png
similarity index 100%
rename from src/main/resources/images/countries/aw.png
rename to gui/src/main/resources/images/countries/aw.png
diff --git a/src/main/resources/images/countries/ax.png b/gui/src/main/resources/images/countries/ax.png
similarity index 100%
rename from src/main/resources/images/countries/ax.png
rename to gui/src/main/resources/images/countries/ax.png
diff --git a/src/main/resources/images/countries/az.png b/gui/src/main/resources/images/countries/az.png
similarity index 100%
rename from src/main/resources/images/countries/az.png
rename to gui/src/main/resources/images/countries/az.png
diff --git a/src/main/resources/images/countries/ba.png b/gui/src/main/resources/images/countries/ba.png
similarity index 100%
rename from src/main/resources/images/countries/ba.png
rename to gui/src/main/resources/images/countries/ba.png
diff --git a/src/main/resources/images/countries/bb.png b/gui/src/main/resources/images/countries/bb.png
similarity index 100%
rename from src/main/resources/images/countries/bb.png
rename to gui/src/main/resources/images/countries/bb.png
diff --git a/src/main/resources/images/countries/bd.png b/gui/src/main/resources/images/countries/bd.png
similarity index 100%
rename from src/main/resources/images/countries/bd.png
rename to gui/src/main/resources/images/countries/bd.png
diff --git a/src/main/resources/images/countries/be.png b/gui/src/main/resources/images/countries/be.png
similarity index 100%
rename from src/main/resources/images/countries/be.png
rename to gui/src/main/resources/images/countries/be.png
diff --git a/src/main/resources/images/countries/bf.png b/gui/src/main/resources/images/countries/bf.png
similarity index 100%
rename from src/main/resources/images/countries/bf.png
rename to gui/src/main/resources/images/countries/bf.png
diff --git a/src/main/resources/images/countries/bg.png b/gui/src/main/resources/images/countries/bg.png
similarity index 100%
rename from src/main/resources/images/countries/bg.png
rename to gui/src/main/resources/images/countries/bg.png
diff --git a/src/main/resources/images/countries/bh.png b/gui/src/main/resources/images/countries/bh.png
similarity index 100%
rename from src/main/resources/images/countries/bh.png
rename to gui/src/main/resources/images/countries/bh.png
diff --git a/src/main/resources/images/countries/bi.png b/gui/src/main/resources/images/countries/bi.png
similarity index 100%
rename from src/main/resources/images/countries/bi.png
rename to gui/src/main/resources/images/countries/bi.png
diff --git a/src/main/resources/images/countries/bj.png b/gui/src/main/resources/images/countries/bj.png
similarity index 100%
rename from src/main/resources/images/countries/bj.png
rename to gui/src/main/resources/images/countries/bj.png
diff --git a/src/main/resources/images/countries/bm.png b/gui/src/main/resources/images/countries/bm.png
similarity index 100%
rename from src/main/resources/images/countries/bm.png
rename to gui/src/main/resources/images/countries/bm.png
diff --git a/src/main/resources/images/countries/bn.png b/gui/src/main/resources/images/countries/bn.png
similarity index 100%
rename from src/main/resources/images/countries/bn.png
rename to gui/src/main/resources/images/countries/bn.png
diff --git a/src/main/resources/images/countries/bo.png b/gui/src/main/resources/images/countries/bo.png
similarity index 100%
rename from src/main/resources/images/countries/bo.png
rename to gui/src/main/resources/images/countries/bo.png
diff --git a/src/main/resources/images/countries/br.png b/gui/src/main/resources/images/countries/br.png
similarity index 100%
rename from src/main/resources/images/countries/br.png
rename to gui/src/main/resources/images/countries/br.png
diff --git a/src/main/resources/images/countries/bs.png b/gui/src/main/resources/images/countries/bs.png
similarity index 100%
rename from src/main/resources/images/countries/bs.png
rename to gui/src/main/resources/images/countries/bs.png
diff --git a/src/main/resources/images/countries/bt.png b/gui/src/main/resources/images/countries/bt.png
similarity index 100%
rename from src/main/resources/images/countries/bt.png
rename to gui/src/main/resources/images/countries/bt.png
diff --git a/src/main/resources/images/countries/bv.png b/gui/src/main/resources/images/countries/bv.png
similarity index 100%
rename from src/main/resources/images/countries/bv.png
rename to gui/src/main/resources/images/countries/bv.png
diff --git a/src/main/resources/images/countries/bw.png b/gui/src/main/resources/images/countries/bw.png
similarity index 100%
rename from src/main/resources/images/countries/bw.png
rename to gui/src/main/resources/images/countries/bw.png
diff --git a/src/main/resources/images/countries/by.png b/gui/src/main/resources/images/countries/by.png
similarity index 100%
rename from src/main/resources/images/countries/by.png
rename to gui/src/main/resources/images/countries/by.png
diff --git a/src/main/resources/images/countries/bz.png b/gui/src/main/resources/images/countries/bz.png
similarity index 100%
rename from src/main/resources/images/countries/bz.png
rename to gui/src/main/resources/images/countries/bz.png
diff --git a/src/main/resources/images/countries/ca.png b/gui/src/main/resources/images/countries/ca.png
similarity index 100%
rename from src/main/resources/images/countries/ca.png
rename to gui/src/main/resources/images/countries/ca.png
diff --git a/src/main/resources/images/countries/catalonia.png b/gui/src/main/resources/images/countries/catalonia.png
similarity index 100%
rename from src/main/resources/images/countries/catalonia.png
rename to gui/src/main/resources/images/countries/catalonia.png
diff --git a/src/main/resources/images/countries/cc.png b/gui/src/main/resources/images/countries/cc.png
similarity index 100%
rename from src/main/resources/images/countries/cc.png
rename to gui/src/main/resources/images/countries/cc.png
diff --git a/src/main/resources/images/countries/cd.png b/gui/src/main/resources/images/countries/cd.png
similarity index 100%
rename from src/main/resources/images/countries/cd.png
rename to gui/src/main/resources/images/countries/cd.png
diff --git a/src/main/resources/images/countries/cf.png b/gui/src/main/resources/images/countries/cf.png
similarity index 100%
rename from src/main/resources/images/countries/cf.png
rename to gui/src/main/resources/images/countries/cf.png
diff --git a/src/main/resources/images/countries/cg.png b/gui/src/main/resources/images/countries/cg.png
similarity index 100%
rename from src/main/resources/images/countries/cg.png
rename to gui/src/main/resources/images/countries/cg.png
diff --git a/src/main/resources/images/countries/ch.png b/gui/src/main/resources/images/countries/ch.png
similarity index 100%
rename from src/main/resources/images/countries/ch.png
rename to gui/src/main/resources/images/countries/ch.png
diff --git a/src/main/resources/images/countries/ci.png b/gui/src/main/resources/images/countries/ci.png
similarity index 100%
rename from src/main/resources/images/countries/ci.png
rename to gui/src/main/resources/images/countries/ci.png
diff --git a/src/main/resources/images/countries/ck.png b/gui/src/main/resources/images/countries/ck.png
similarity index 100%
rename from src/main/resources/images/countries/ck.png
rename to gui/src/main/resources/images/countries/ck.png
diff --git a/src/main/resources/images/countries/cl.png b/gui/src/main/resources/images/countries/cl.png
similarity index 100%
rename from src/main/resources/images/countries/cl.png
rename to gui/src/main/resources/images/countries/cl.png
diff --git a/src/main/resources/images/countries/cm.png b/gui/src/main/resources/images/countries/cm.png
similarity index 100%
rename from src/main/resources/images/countries/cm.png
rename to gui/src/main/resources/images/countries/cm.png
diff --git a/src/main/resources/images/countries/cn.png b/gui/src/main/resources/images/countries/cn.png
similarity index 100%
rename from src/main/resources/images/countries/cn.png
rename to gui/src/main/resources/images/countries/cn.png
diff --git a/src/main/resources/images/countries/co.png b/gui/src/main/resources/images/countries/co.png
similarity index 100%
rename from src/main/resources/images/countries/co.png
rename to gui/src/main/resources/images/countries/co.png
diff --git a/src/main/resources/images/countries/cr.png b/gui/src/main/resources/images/countries/cr.png
similarity index 100%
rename from src/main/resources/images/countries/cr.png
rename to gui/src/main/resources/images/countries/cr.png
diff --git a/src/main/resources/images/countries/cs.png b/gui/src/main/resources/images/countries/cs.png
similarity index 100%
rename from src/main/resources/images/countries/cs.png
rename to gui/src/main/resources/images/countries/cs.png
diff --git a/src/main/resources/images/countries/cu.png b/gui/src/main/resources/images/countries/cu.png
similarity index 100%
rename from src/main/resources/images/countries/cu.png
rename to gui/src/main/resources/images/countries/cu.png
diff --git a/src/main/resources/images/countries/cv.png b/gui/src/main/resources/images/countries/cv.png
similarity index 100%
rename from src/main/resources/images/countries/cv.png
rename to gui/src/main/resources/images/countries/cv.png
diff --git a/src/main/resources/images/countries/cx.png b/gui/src/main/resources/images/countries/cx.png
similarity index 100%
rename from src/main/resources/images/countries/cx.png
rename to gui/src/main/resources/images/countries/cx.png
diff --git a/src/main/resources/images/countries/cy.png b/gui/src/main/resources/images/countries/cy.png
similarity index 100%
rename from src/main/resources/images/countries/cy.png
rename to gui/src/main/resources/images/countries/cy.png
diff --git a/src/main/resources/images/countries/cz.png b/gui/src/main/resources/images/countries/cz.png
similarity index 100%
rename from src/main/resources/images/countries/cz.png
rename to gui/src/main/resources/images/countries/cz.png
diff --git a/src/main/resources/images/countries/de.png b/gui/src/main/resources/images/countries/de.png
similarity index 100%
rename from src/main/resources/images/countries/de.png
rename to gui/src/main/resources/images/countries/de.png
diff --git a/src/main/resources/images/countries/dj.png b/gui/src/main/resources/images/countries/dj.png
similarity index 100%
rename from src/main/resources/images/countries/dj.png
rename to gui/src/main/resources/images/countries/dj.png
diff --git a/src/main/resources/images/countries/dk.png b/gui/src/main/resources/images/countries/dk.png
similarity index 100%
rename from src/main/resources/images/countries/dk.png
rename to gui/src/main/resources/images/countries/dk.png
diff --git a/src/main/resources/images/countries/dm.png b/gui/src/main/resources/images/countries/dm.png
similarity index 100%
rename from src/main/resources/images/countries/dm.png
rename to gui/src/main/resources/images/countries/dm.png
diff --git a/src/main/resources/images/countries/do.png b/gui/src/main/resources/images/countries/do.png
similarity index 100%
rename from src/main/resources/images/countries/do.png
rename to gui/src/main/resources/images/countries/do.png
diff --git a/src/main/resources/images/countries/dz.png b/gui/src/main/resources/images/countries/dz.png
similarity index 100%
rename from src/main/resources/images/countries/dz.png
rename to gui/src/main/resources/images/countries/dz.png
diff --git a/src/main/resources/images/countries/ec.png b/gui/src/main/resources/images/countries/ec.png
similarity index 100%
rename from src/main/resources/images/countries/ec.png
rename to gui/src/main/resources/images/countries/ec.png
diff --git a/src/main/resources/images/countries/ee.png b/gui/src/main/resources/images/countries/ee.png
similarity index 100%
rename from src/main/resources/images/countries/ee.png
rename to gui/src/main/resources/images/countries/ee.png
diff --git a/src/main/resources/images/countries/eg.png b/gui/src/main/resources/images/countries/eg.png
similarity index 100%
rename from src/main/resources/images/countries/eg.png
rename to gui/src/main/resources/images/countries/eg.png
diff --git a/src/main/resources/images/countries/eh.png b/gui/src/main/resources/images/countries/eh.png
similarity index 100%
rename from src/main/resources/images/countries/eh.png
rename to gui/src/main/resources/images/countries/eh.png
diff --git a/src/main/resources/images/countries/england.png b/gui/src/main/resources/images/countries/england.png
similarity index 100%
rename from src/main/resources/images/countries/england.png
rename to gui/src/main/resources/images/countries/england.png
diff --git a/src/main/resources/images/countries/er.png b/gui/src/main/resources/images/countries/er.png
similarity index 100%
rename from src/main/resources/images/countries/er.png
rename to gui/src/main/resources/images/countries/er.png
diff --git a/src/main/resources/images/countries/es.png b/gui/src/main/resources/images/countries/es.png
similarity index 100%
rename from src/main/resources/images/countries/es.png
rename to gui/src/main/resources/images/countries/es.png
diff --git a/src/main/resources/images/countries/et.png b/gui/src/main/resources/images/countries/et.png
similarity index 100%
rename from src/main/resources/images/countries/et.png
rename to gui/src/main/resources/images/countries/et.png
diff --git a/src/main/resources/images/countries/eu.png b/gui/src/main/resources/images/countries/eu.png
similarity index 100%
rename from src/main/resources/images/countries/eu.png
rename to gui/src/main/resources/images/countries/eu.png
diff --git a/src/main/resources/images/countries/fam.png b/gui/src/main/resources/images/countries/fam.png
similarity index 100%
rename from src/main/resources/images/countries/fam.png
rename to gui/src/main/resources/images/countries/fam.png
diff --git a/src/main/resources/images/countries/fi.png b/gui/src/main/resources/images/countries/fi.png
similarity index 100%
rename from src/main/resources/images/countries/fi.png
rename to gui/src/main/resources/images/countries/fi.png
diff --git a/src/main/resources/images/countries/fj.png b/gui/src/main/resources/images/countries/fj.png
similarity index 100%
rename from src/main/resources/images/countries/fj.png
rename to gui/src/main/resources/images/countries/fj.png
diff --git a/src/main/resources/images/countries/fk.png b/gui/src/main/resources/images/countries/fk.png
similarity index 100%
rename from src/main/resources/images/countries/fk.png
rename to gui/src/main/resources/images/countries/fk.png
diff --git a/src/main/resources/images/countries/fm.png b/gui/src/main/resources/images/countries/fm.png
similarity index 100%
rename from src/main/resources/images/countries/fm.png
rename to gui/src/main/resources/images/countries/fm.png
diff --git a/src/main/resources/images/countries/fo.png b/gui/src/main/resources/images/countries/fo.png
similarity index 100%
rename from src/main/resources/images/countries/fo.png
rename to gui/src/main/resources/images/countries/fo.png
diff --git a/src/main/resources/images/countries/fr.png b/gui/src/main/resources/images/countries/fr.png
similarity index 100%
rename from src/main/resources/images/countries/fr.png
rename to gui/src/main/resources/images/countries/fr.png
diff --git a/src/main/resources/images/countries/ga.png b/gui/src/main/resources/images/countries/ga.png
similarity index 100%
rename from src/main/resources/images/countries/ga.png
rename to gui/src/main/resources/images/countries/ga.png
diff --git a/src/main/resources/images/countries/gd.png b/gui/src/main/resources/images/countries/gd.png
similarity index 100%
rename from src/main/resources/images/countries/gd.png
rename to gui/src/main/resources/images/countries/gd.png
diff --git a/src/main/resources/images/countries/ge.png b/gui/src/main/resources/images/countries/ge.png
similarity index 100%
rename from src/main/resources/images/countries/ge.png
rename to gui/src/main/resources/images/countries/ge.png
diff --git a/src/main/resources/images/countries/gf.png b/gui/src/main/resources/images/countries/gf.png
similarity index 100%
rename from src/main/resources/images/countries/gf.png
rename to gui/src/main/resources/images/countries/gf.png
diff --git a/src/main/resources/images/countries/gh.png b/gui/src/main/resources/images/countries/gh.png
similarity index 100%
rename from src/main/resources/images/countries/gh.png
rename to gui/src/main/resources/images/countries/gh.png
diff --git a/src/main/resources/images/countries/gi.png b/gui/src/main/resources/images/countries/gi.png
similarity index 100%
rename from src/main/resources/images/countries/gi.png
rename to gui/src/main/resources/images/countries/gi.png
diff --git a/src/main/resources/images/countries/gl.png b/gui/src/main/resources/images/countries/gl.png
similarity index 100%
rename from src/main/resources/images/countries/gl.png
rename to gui/src/main/resources/images/countries/gl.png
diff --git a/src/main/resources/images/countries/gm.png b/gui/src/main/resources/images/countries/gm.png
similarity index 100%
rename from src/main/resources/images/countries/gm.png
rename to gui/src/main/resources/images/countries/gm.png
diff --git a/src/main/resources/images/countries/gn.png b/gui/src/main/resources/images/countries/gn.png
similarity index 100%
rename from src/main/resources/images/countries/gn.png
rename to gui/src/main/resources/images/countries/gn.png
diff --git a/src/main/resources/images/countries/gp.png b/gui/src/main/resources/images/countries/gp.png
similarity index 100%
rename from src/main/resources/images/countries/gp.png
rename to gui/src/main/resources/images/countries/gp.png
diff --git a/src/main/resources/images/countries/gq.png b/gui/src/main/resources/images/countries/gq.png
similarity index 100%
rename from src/main/resources/images/countries/gq.png
rename to gui/src/main/resources/images/countries/gq.png
diff --git a/src/main/resources/images/countries/gr.png b/gui/src/main/resources/images/countries/gr.png
similarity index 100%
rename from src/main/resources/images/countries/gr.png
rename to gui/src/main/resources/images/countries/gr.png
diff --git a/src/main/resources/images/countries/gs.png b/gui/src/main/resources/images/countries/gs.png
similarity index 100%
rename from src/main/resources/images/countries/gs.png
rename to gui/src/main/resources/images/countries/gs.png
diff --git a/src/main/resources/images/countries/gt.png b/gui/src/main/resources/images/countries/gt.png
similarity index 100%
rename from src/main/resources/images/countries/gt.png
rename to gui/src/main/resources/images/countries/gt.png
diff --git a/src/main/resources/images/countries/gu.png b/gui/src/main/resources/images/countries/gu.png
similarity index 100%
rename from src/main/resources/images/countries/gu.png
rename to gui/src/main/resources/images/countries/gu.png
diff --git a/src/main/resources/images/countries/gw.png b/gui/src/main/resources/images/countries/gw.png
similarity index 100%
rename from src/main/resources/images/countries/gw.png
rename to gui/src/main/resources/images/countries/gw.png
diff --git a/src/main/resources/images/countries/gy.png b/gui/src/main/resources/images/countries/gy.png
similarity index 100%
rename from src/main/resources/images/countries/gy.png
rename to gui/src/main/resources/images/countries/gy.png
diff --git a/src/main/resources/images/countries/hk.png b/gui/src/main/resources/images/countries/hk.png
similarity index 100%
rename from src/main/resources/images/countries/hk.png
rename to gui/src/main/resources/images/countries/hk.png
diff --git a/src/main/resources/images/countries/hm.png b/gui/src/main/resources/images/countries/hm.png
similarity index 100%
rename from src/main/resources/images/countries/hm.png
rename to gui/src/main/resources/images/countries/hm.png
diff --git a/src/main/resources/images/countries/hn.png b/gui/src/main/resources/images/countries/hn.png
similarity index 100%
rename from src/main/resources/images/countries/hn.png
rename to gui/src/main/resources/images/countries/hn.png
diff --git a/src/main/resources/images/countries/hr.png b/gui/src/main/resources/images/countries/hr.png
similarity index 100%
rename from src/main/resources/images/countries/hr.png
rename to gui/src/main/resources/images/countries/hr.png
diff --git a/src/main/resources/images/countries/ht.png b/gui/src/main/resources/images/countries/ht.png
similarity index 100%
rename from src/main/resources/images/countries/ht.png
rename to gui/src/main/resources/images/countries/ht.png
diff --git a/src/main/resources/images/countries/hu.png b/gui/src/main/resources/images/countries/hu.png
similarity index 100%
rename from src/main/resources/images/countries/hu.png
rename to gui/src/main/resources/images/countries/hu.png
diff --git a/src/main/resources/images/countries/id.png b/gui/src/main/resources/images/countries/id.png
similarity index 100%
rename from src/main/resources/images/countries/id.png
rename to gui/src/main/resources/images/countries/id.png
diff --git a/src/main/resources/images/countries/ie.png b/gui/src/main/resources/images/countries/ie.png
similarity index 100%
rename from src/main/resources/images/countries/ie.png
rename to gui/src/main/resources/images/countries/ie.png
diff --git a/src/main/resources/images/countries/il.png b/gui/src/main/resources/images/countries/il.png
similarity index 100%
rename from src/main/resources/images/countries/il.png
rename to gui/src/main/resources/images/countries/il.png
diff --git a/src/main/resources/images/countries/in.png b/gui/src/main/resources/images/countries/in.png
similarity index 100%
rename from src/main/resources/images/countries/in.png
rename to gui/src/main/resources/images/countries/in.png
diff --git a/src/main/resources/images/countries/io.png b/gui/src/main/resources/images/countries/io.png
similarity index 100%
rename from src/main/resources/images/countries/io.png
rename to gui/src/main/resources/images/countries/io.png
diff --git a/src/main/resources/images/countries/iq.png b/gui/src/main/resources/images/countries/iq.png
similarity index 100%
rename from src/main/resources/images/countries/iq.png
rename to gui/src/main/resources/images/countries/iq.png
diff --git a/src/main/resources/images/countries/ir.png b/gui/src/main/resources/images/countries/ir.png
similarity index 100%
rename from src/main/resources/images/countries/ir.png
rename to gui/src/main/resources/images/countries/ir.png
diff --git a/src/main/resources/images/countries/is.png b/gui/src/main/resources/images/countries/is.png
similarity index 100%
rename from src/main/resources/images/countries/is.png
rename to gui/src/main/resources/images/countries/is.png
diff --git a/src/main/resources/images/countries/it.png b/gui/src/main/resources/images/countries/it.png
similarity index 100%
rename from src/main/resources/images/countries/it.png
rename to gui/src/main/resources/images/countries/it.png
diff --git a/src/main/resources/images/countries/jm.png b/gui/src/main/resources/images/countries/jm.png
similarity index 100%
rename from src/main/resources/images/countries/jm.png
rename to gui/src/main/resources/images/countries/jm.png
diff --git a/src/main/resources/images/countries/jo.png b/gui/src/main/resources/images/countries/jo.png
similarity index 100%
rename from src/main/resources/images/countries/jo.png
rename to gui/src/main/resources/images/countries/jo.png
diff --git a/src/main/resources/images/countries/jp.png b/gui/src/main/resources/images/countries/jp.png
similarity index 100%
rename from src/main/resources/images/countries/jp.png
rename to gui/src/main/resources/images/countries/jp.png
diff --git a/src/main/resources/images/countries/ke.png b/gui/src/main/resources/images/countries/ke.png
similarity index 100%
rename from src/main/resources/images/countries/ke.png
rename to gui/src/main/resources/images/countries/ke.png
diff --git a/src/main/resources/images/countries/kg.png b/gui/src/main/resources/images/countries/kg.png
similarity index 100%
rename from src/main/resources/images/countries/kg.png
rename to gui/src/main/resources/images/countries/kg.png
diff --git a/src/main/resources/images/countries/kh.png b/gui/src/main/resources/images/countries/kh.png
similarity index 100%
rename from src/main/resources/images/countries/kh.png
rename to gui/src/main/resources/images/countries/kh.png
diff --git a/src/main/resources/images/countries/ki.png b/gui/src/main/resources/images/countries/ki.png
similarity index 100%
rename from src/main/resources/images/countries/ki.png
rename to gui/src/main/resources/images/countries/ki.png
diff --git a/src/main/resources/images/countries/km.png b/gui/src/main/resources/images/countries/km.png
similarity index 100%
rename from src/main/resources/images/countries/km.png
rename to gui/src/main/resources/images/countries/km.png
diff --git a/src/main/resources/images/countries/kn.png b/gui/src/main/resources/images/countries/kn.png
similarity index 100%
rename from src/main/resources/images/countries/kn.png
rename to gui/src/main/resources/images/countries/kn.png
diff --git a/src/main/resources/images/countries/kp.png b/gui/src/main/resources/images/countries/kp.png
similarity index 100%
rename from src/main/resources/images/countries/kp.png
rename to gui/src/main/resources/images/countries/kp.png
diff --git a/src/main/resources/images/countries/kr.png b/gui/src/main/resources/images/countries/kr.png
similarity index 100%
rename from src/main/resources/images/countries/kr.png
rename to gui/src/main/resources/images/countries/kr.png
diff --git a/src/main/resources/images/countries/kw.png b/gui/src/main/resources/images/countries/kw.png
similarity index 100%
rename from src/main/resources/images/countries/kw.png
rename to gui/src/main/resources/images/countries/kw.png
diff --git a/src/main/resources/images/countries/ky.png b/gui/src/main/resources/images/countries/ky.png
similarity index 100%
rename from src/main/resources/images/countries/ky.png
rename to gui/src/main/resources/images/countries/ky.png
diff --git a/src/main/resources/images/countries/kz.png b/gui/src/main/resources/images/countries/kz.png
similarity index 100%
rename from src/main/resources/images/countries/kz.png
rename to gui/src/main/resources/images/countries/kz.png
diff --git a/src/main/resources/images/countries/la.png b/gui/src/main/resources/images/countries/la.png
similarity index 100%
rename from src/main/resources/images/countries/la.png
rename to gui/src/main/resources/images/countries/la.png
diff --git a/src/main/resources/images/countries/lb.png b/gui/src/main/resources/images/countries/lb.png
similarity index 100%
rename from src/main/resources/images/countries/lb.png
rename to gui/src/main/resources/images/countries/lb.png
diff --git a/src/main/resources/images/countries/lc.png b/gui/src/main/resources/images/countries/lc.png
similarity index 100%
rename from src/main/resources/images/countries/lc.png
rename to gui/src/main/resources/images/countries/lc.png
diff --git a/src/main/resources/images/countries/li.png b/gui/src/main/resources/images/countries/li.png
similarity index 100%
rename from src/main/resources/images/countries/li.png
rename to gui/src/main/resources/images/countries/li.png
diff --git a/src/main/resources/images/countries/lk.png b/gui/src/main/resources/images/countries/lk.png
similarity index 100%
rename from src/main/resources/images/countries/lk.png
rename to gui/src/main/resources/images/countries/lk.png
diff --git a/src/main/resources/images/countries/lr.png b/gui/src/main/resources/images/countries/lr.png
similarity index 100%
rename from src/main/resources/images/countries/lr.png
rename to gui/src/main/resources/images/countries/lr.png
diff --git a/src/main/resources/images/countries/ls.png b/gui/src/main/resources/images/countries/ls.png
similarity index 100%
rename from src/main/resources/images/countries/ls.png
rename to gui/src/main/resources/images/countries/ls.png
diff --git a/src/main/resources/images/countries/lt.png b/gui/src/main/resources/images/countries/lt.png
similarity index 100%
rename from src/main/resources/images/countries/lt.png
rename to gui/src/main/resources/images/countries/lt.png
diff --git a/src/main/resources/images/countries/lu.png b/gui/src/main/resources/images/countries/lu.png
similarity index 100%
rename from src/main/resources/images/countries/lu.png
rename to gui/src/main/resources/images/countries/lu.png
diff --git a/src/main/resources/images/countries/lv.png b/gui/src/main/resources/images/countries/lv.png
similarity index 100%
rename from src/main/resources/images/countries/lv.png
rename to gui/src/main/resources/images/countries/lv.png
diff --git a/src/main/resources/images/countries/ly.png b/gui/src/main/resources/images/countries/ly.png
similarity index 100%
rename from src/main/resources/images/countries/ly.png
rename to gui/src/main/resources/images/countries/ly.png
diff --git a/src/main/resources/images/countries/ma.png b/gui/src/main/resources/images/countries/ma.png
similarity index 100%
rename from src/main/resources/images/countries/ma.png
rename to gui/src/main/resources/images/countries/ma.png
diff --git a/src/main/resources/images/countries/mc.png b/gui/src/main/resources/images/countries/mc.png
similarity index 100%
rename from src/main/resources/images/countries/mc.png
rename to gui/src/main/resources/images/countries/mc.png
diff --git a/src/main/resources/images/countries/md.png b/gui/src/main/resources/images/countries/md.png
similarity index 100%
rename from src/main/resources/images/countries/md.png
rename to gui/src/main/resources/images/countries/md.png
diff --git a/src/main/resources/images/countries/me.png b/gui/src/main/resources/images/countries/me.png
similarity index 100%
rename from src/main/resources/images/countries/me.png
rename to gui/src/main/resources/images/countries/me.png
diff --git a/src/main/resources/images/countries/mg.png b/gui/src/main/resources/images/countries/mg.png
similarity index 100%
rename from src/main/resources/images/countries/mg.png
rename to gui/src/main/resources/images/countries/mg.png
diff --git a/src/main/resources/images/countries/mh.png b/gui/src/main/resources/images/countries/mh.png
similarity index 100%
rename from src/main/resources/images/countries/mh.png
rename to gui/src/main/resources/images/countries/mh.png
diff --git a/src/main/resources/images/countries/mk.png b/gui/src/main/resources/images/countries/mk.png
similarity index 100%
rename from src/main/resources/images/countries/mk.png
rename to gui/src/main/resources/images/countries/mk.png
diff --git a/src/main/resources/images/countries/ml.png b/gui/src/main/resources/images/countries/ml.png
similarity index 100%
rename from src/main/resources/images/countries/ml.png
rename to gui/src/main/resources/images/countries/ml.png
diff --git a/src/main/resources/images/countries/mm.png b/gui/src/main/resources/images/countries/mm.png
similarity index 100%
rename from src/main/resources/images/countries/mm.png
rename to gui/src/main/resources/images/countries/mm.png
diff --git a/src/main/resources/images/countries/mn.png b/gui/src/main/resources/images/countries/mn.png
similarity index 100%
rename from src/main/resources/images/countries/mn.png
rename to gui/src/main/resources/images/countries/mn.png
diff --git a/src/main/resources/images/countries/mo.png b/gui/src/main/resources/images/countries/mo.png
similarity index 100%
rename from src/main/resources/images/countries/mo.png
rename to gui/src/main/resources/images/countries/mo.png
diff --git a/src/main/resources/images/countries/mp.png b/gui/src/main/resources/images/countries/mp.png
similarity index 100%
rename from src/main/resources/images/countries/mp.png
rename to gui/src/main/resources/images/countries/mp.png
diff --git a/src/main/resources/images/countries/mq.png b/gui/src/main/resources/images/countries/mq.png
similarity index 100%
rename from src/main/resources/images/countries/mq.png
rename to gui/src/main/resources/images/countries/mq.png
diff --git a/src/main/resources/images/countries/mr.png b/gui/src/main/resources/images/countries/mr.png
similarity index 100%
rename from src/main/resources/images/countries/mr.png
rename to gui/src/main/resources/images/countries/mr.png
diff --git a/src/main/resources/images/countries/ms.png b/gui/src/main/resources/images/countries/ms.png
similarity index 100%
rename from src/main/resources/images/countries/ms.png
rename to gui/src/main/resources/images/countries/ms.png
diff --git a/src/main/resources/images/countries/mt.png b/gui/src/main/resources/images/countries/mt.png
similarity index 100%
rename from src/main/resources/images/countries/mt.png
rename to gui/src/main/resources/images/countries/mt.png
diff --git a/src/main/resources/images/countries/mu.png b/gui/src/main/resources/images/countries/mu.png
similarity index 100%
rename from src/main/resources/images/countries/mu.png
rename to gui/src/main/resources/images/countries/mu.png
diff --git a/src/main/resources/images/countries/mv.png b/gui/src/main/resources/images/countries/mv.png
similarity index 100%
rename from src/main/resources/images/countries/mv.png
rename to gui/src/main/resources/images/countries/mv.png
diff --git a/src/main/resources/images/countries/mw.png b/gui/src/main/resources/images/countries/mw.png
similarity index 100%
rename from src/main/resources/images/countries/mw.png
rename to gui/src/main/resources/images/countries/mw.png
diff --git a/src/main/resources/images/countries/mx.png b/gui/src/main/resources/images/countries/mx.png
similarity index 100%
rename from src/main/resources/images/countries/mx.png
rename to gui/src/main/resources/images/countries/mx.png
diff --git a/src/main/resources/images/countries/my.png b/gui/src/main/resources/images/countries/my.png
similarity index 100%
rename from src/main/resources/images/countries/my.png
rename to gui/src/main/resources/images/countries/my.png
diff --git a/src/main/resources/images/countries/mz.png b/gui/src/main/resources/images/countries/mz.png
similarity index 100%
rename from src/main/resources/images/countries/mz.png
rename to gui/src/main/resources/images/countries/mz.png
diff --git a/src/main/resources/images/countries/na.png b/gui/src/main/resources/images/countries/na.png
similarity index 100%
rename from src/main/resources/images/countries/na.png
rename to gui/src/main/resources/images/countries/na.png
diff --git a/src/main/resources/images/countries/nc.png b/gui/src/main/resources/images/countries/nc.png
similarity index 100%
rename from src/main/resources/images/countries/nc.png
rename to gui/src/main/resources/images/countries/nc.png
diff --git a/src/main/resources/images/countries/ne.png b/gui/src/main/resources/images/countries/ne.png
similarity index 100%
rename from src/main/resources/images/countries/ne.png
rename to gui/src/main/resources/images/countries/ne.png
diff --git a/src/main/resources/images/countries/nf.png b/gui/src/main/resources/images/countries/nf.png
similarity index 100%
rename from src/main/resources/images/countries/nf.png
rename to gui/src/main/resources/images/countries/nf.png
diff --git a/src/main/resources/images/countries/ng.png b/gui/src/main/resources/images/countries/ng.png
similarity index 100%
rename from src/main/resources/images/countries/ng.png
rename to gui/src/main/resources/images/countries/ng.png
diff --git a/src/main/resources/images/countries/ni.png b/gui/src/main/resources/images/countries/ni.png
similarity index 100%
rename from src/main/resources/images/countries/ni.png
rename to gui/src/main/resources/images/countries/ni.png
diff --git a/src/main/resources/images/countries/nl.png b/gui/src/main/resources/images/countries/nl.png
similarity index 100%
rename from src/main/resources/images/countries/nl.png
rename to gui/src/main/resources/images/countries/nl.png
diff --git a/src/main/resources/images/countries/no.png b/gui/src/main/resources/images/countries/no.png
similarity index 100%
rename from src/main/resources/images/countries/no.png
rename to gui/src/main/resources/images/countries/no.png
diff --git a/src/main/resources/images/countries/np.png b/gui/src/main/resources/images/countries/np.png
similarity index 100%
rename from src/main/resources/images/countries/np.png
rename to gui/src/main/resources/images/countries/np.png
diff --git a/src/main/resources/images/countries/nr.png b/gui/src/main/resources/images/countries/nr.png
similarity index 100%
rename from src/main/resources/images/countries/nr.png
rename to gui/src/main/resources/images/countries/nr.png
diff --git a/src/main/resources/images/countries/nu.png b/gui/src/main/resources/images/countries/nu.png
similarity index 100%
rename from src/main/resources/images/countries/nu.png
rename to gui/src/main/resources/images/countries/nu.png
diff --git a/src/main/resources/images/countries/nz.png b/gui/src/main/resources/images/countries/nz.png
similarity index 100%
rename from src/main/resources/images/countries/nz.png
rename to gui/src/main/resources/images/countries/nz.png
diff --git a/src/main/resources/images/countries/om.png b/gui/src/main/resources/images/countries/om.png
similarity index 100%
rename from src/main/resources/images/countries/om.png
rename to gui/src/main/resources/images/countries/om.png
diff --git a/src/main/resources/images/countries/pa.png b/gui/src/main/resources/images/countries/pa.png
similarity index 100%
rename from src/main/resources/images/countries/pa.png
rename to gui/src/main/resources/images/countries/pa.png
diff --git a/src/main/resources/images/countries/pe.png b/gui/src/main/resources/images/countries/pe.png
similarity index 100%
rename from src/main/resources/images/countries/pe.png
rename to gui/src/main/resources/images/countries/pe.png
diff --git a/src/main/resources/images/countries/pf.png b/gui/src/main/resources/images/countries/pf.png
similarity index 100%
rename from src/main/resources/images/countries/pf.png
rename to gui/src/main/resources/images/countries/pf.png
diff --git a/src/main/resources/images/countries/pg.png b/gui/src/main/resources/images/countries/pg.png
similarity index 100%
rename from src/main/resources/images/countries/pg.png
rename to gui/src/main/resources/images/countries/pg.png
diff --git a/src/main/resources/images/countries/ph.png b/gui/src/main/resources/images/countries/ph.png
similarity index 100%
rename from src/main/resources/images/countries/ph.png
rename to gui/src/main/resources/images/countries/ph.png
diff --git a/src/main/resources/images/countries/pk.png b/gui/src/main/resources/images/countries/pk.png
similarity index 100%
rename from src/main/resources/images/countries/pk.png
rename to gui/src/main/resources/images/countries/pk.png
diff --git a/src/main/resources/images/countries/pl.png b/gui/src/main/resources/images/countries/pl.png
similarity index 100%
rename from src/main/resources/images/countries/pl.png
rename to gui/src/main/resources/images/countries/pl.png
diff --git a/src/main/resources/images/countries/pm.png b/gui/src/main/resources/images/countries/pm.png
similarity index 100%
rename from src/main/resources/images/countries/pm.png
rename to gui/src/main/resources/images/countries/pm.png
diff --git a/src/main/resources/images/countries/pn.png b/gui/src/main/resources/images/countries/pn.png
similarity index 100%
rename from src/main/resources/images/countries/pn.png
rename to gui/src/main/resources/images/countries/pn.png
diff --git a/src/main/resources/images/countries/pr.png b/gui/src/main/resources/images/countries/pr.png
similarity index 100%
rename from src/main/resources/images/countries/pr.png
rename to gui/src/main/resources/images/countries/pr.png
diff --git a/src/main/resources/images/countries/ps.png b/gui/src/main/resources/images/countries/ps.png
similarity index 100%
rename from src/main/resources/images/countries/ps.png
rename to gui/src/main/resources/images/countries/ps.png
diff --git a/src/main/resources/images/countries/pt.png b/gui/src/main/resources/images/countries/pt.png
similarity index 100%
rename from src/main/resources/images/countries/pt.png
rename to gui/src/main/resources/images/countries/pt.png
diff --git a/src/main/resources/images/countries/pw.png b/gui/src/main/resources/images/countries/pw.png
similarity index 100%
rename from src/main/resources/images/countries/pw.png
rename to gui/src/main/resources/images/countries/pw.png
diff --git a/src/main/resources/images/countries/py.png b/gui/src/main/resources/images/countries/py.png
similarity index 100%
rename from src/main/resources/images/countries/py.png
rename to gui/src/main/resources/images/countries/py.png
diff --git a/src/main/resources/images/countries/qa.png b/gui/src/main/resources/images/countries/qa.png
similarity index 100%
rename from src/main/resources/images/countries/qa.png
rename to gui/src/main/resources/images/countries/qa.png
diff --git a/src/main/resources/images/countries/re.png b/gui/src/main/resources/images/countries/re.png
similarity index 100%
rename from src/main/resources/images/countries/re.png
rename to gui/src/main/resources/images/countries/re.png
diff --git a/src/main/resources/images/countries/ro.png b/gui/src/main/resources/images/countries/ro.png
similarity index 100%
rename from src/main/resources/images/countries/ro.png
rename to gui/src/main/resources/images/countries/ro.png
diff --git a/src/main/resources/images/countries/rs.png b/gui/src/main/resources/images/countries/rs.png
similarity index 100%
rename from src/main/resources/images/countries/rs.png
rename to gui/src/main/resources/images/countries/rs.png
diff --git a/src/main/resources/images/countries/ru.png b/gui/src/main/resources/images/countries/ru.png
similarity index 100%
rename from src/main/resources/images/countries/ru.png
rename to gui/src/main/resources/images/countries/ru.png
diff --git a/src/main/resources/images/countries/rw.png b/gui/src/main/resources/images/countries/rw.png
similarity index 100%
rename from src/main/resources/images/countries/rw.png
rename to gui/src/main/resources/images/countries/rw.png
diff --git a/src/main/resources/images/countries/sa.png b/gui/src/main/resources/images/countries/sa.png
similarity index 100%
rename from src/main/resources/images/countries/sa.png
rename to gui/src/main/resources/images/countries/sa.png
diff --git a/src/main/resources/images/countries/sb.png b/gui/src/main/resources/images/countries/sb.png
similarity index 100%
rename from src/main/resources/images/countries/sb.png
rename to gui/src/main/resources/images/countries/sb.png
diff --git a/src/main/resources/images/countries/sc.png b/gui/src/main/resources/images/countries/sc.png
similarity index 100%
rename from src/main/resources/images/countries/sc.png
rename to gui/src/main/resources/images/countries/sc.png
diff --git a/src/main/resources/images/countries/scotland.png b/gui/src/main/resources/images/countries/scotland.png
similarity index 100%
rename from src/main/resources/images/countries/scotland.png
rename to gui/src/main/resources/images/countries/scotland.png
diff --git a/src/main/resources/images/countries/sd.png b/gui/src/main/resources/images/countries/sd.png
similarity index 100%
rename from src/main/resources/images/countries/sd.png
rename to gui/src/main/resources/images/countries/sd.png
diff --git a/src/main/resources/images/countries/se.png b/gui/src/main/resources/images/countries/se.png
similarity index 100%
rename from src/main/resources/images/countries/se.png
rename to gui/src/main/resources/images/countries/se.png
diff --git a/src/main/resources/images/countries/sg.png b/gui/src/main/resources/images/countries/sg.png
similarity index 100%
rename from src/main/resources/images/countries/sg.png
rename to gui/src/main/resources/images/countries/sg.png
diff --git a/src/main/resources/images/countries/sh.png b/gui/src/main/resources/images/countries/sh.png
similarity index 100%
rename from src/main/resources/images/countries/sh.png
rename to gui/src/main/resources/images/countries/sh.png
diff --git a/src/main/resources/images/countries/si.png b/gui/src/main/resources/images/countries/si.png
similarity index 100%
rename from src/main/resources/images/countries/si.png
rename to gui/src/main/resources/images/countries/si.png
diff --git a/src/main/resources/images/countries/sj.png b/gui/src/main/resources/images/countries/sj.png
similarity index 100%
rename from src/main/resources/images/countries/sj.png
rename to gui/src/main/resources/images/countries/sj.png
diff --git a/src/main/resources/images/countries/sk.png b/gui/src/main/resources/images/countries/sk.png
similarity index 100%
rename from src/main/resources/images/countries/sk.png
rename to gui/src/main/resources/images/countries/sk.png
diff --git a/src/main/resources/images/countries/sl.png b/gui/src/main/resources/images/countries/sl.png
similarity index 100%
rename from src/main/resources/images/countries/sl.png
rename to gui/src/main/resources/images/countries/sl.png
diff --git a/src/main/resources/images/countries/sm.png b/gui/src/main/resources/images/countries/sm.png
similarity index 100%
rename from src/main/resources/images/countries/sm.png
rename to gui/src/main/resources/images/countries/sm.png
diff --git a/src/main/resources/images/countries/sn.png b/gui/src/main/resources/images/countries/sn.png
similarity index 100%
rename from src/main/resources/images/countries/sn.png
rename to gui/src/main/resources/images/countries/sn.png
diff --git a/src/main/resources/images/countries/so.png b/gui/src/main/resources/images/countries/so.png
similarity index 100%
rename from src/main/resources/images/countries/so.png
rename to gui/src/main/resources/images/countries/so.png
diff --git a/src/main/resources/images/countries/sr.png b/gui/src/main/resources/images/countries/sr.png
similarity index 100%
rename from src/main/resources/images/countries/sr.png
rename to gui/src/main/resources/images/countries/sr.png
diff --git a/src/main/resources/images/countries/st.png b/gui/src/main/resources/images/countries/st.png
similarity index 100%
rename from src/main/resources/images/countries/st.png
rename to gui/src/main/resources/images/countries/st.png
diff --git a/src/main/resources/images/countries/sv.png b/gui/src/main/resources/images/countries/sv.png
similarity index 100%
rename from src/main/resources/images/countries/sv.png
rename to gui/src/main/resources/images/countries/sv.png
diff --git a/src/main/resources/images/countries/sy.png b/gui/src/main/resources/images/countries/sy.png
similarity index 100%
rename from src/main/resources/images/countries/sy.png
rename to gui/src/main/resources/images/countries/sy.png
diff --git a/src/main/resources/images/countries/sz.png b/gui/src/main/resources/images/countries/sz.png
similarity index 100%
rename from src/main/resources/images/countries/sz.png
rename to gui/src/main/resources/images/countries/sz.png
diff --git a/src/main/resources/images/countries/tc.png b/gui/src/main/resources/images/countries/tc.png
similarity index 100%
rename from src/main/resources/images/countries/tc.png
rename to gui/src/main/resources/images/countries/tc.png
diff --git a/src/main/resources/images/countries/td.png b/gui/src/main/resources/images/countries/td.png
similarity index 100%
rename from src/main/resources/images/countries/td.png
rename to gui/src/main/resources/images/countries/td.png
diff --git a/src/main/resources/images/countries/tf.png b/gui/src/main/resources/images/countries/tf.png
similarity index 100%
rename from src/main/resources/images/countries/tf.png
rename to gui/src/main/resources/images/countries/tf.png
diff --git a/src/main/resources/images/countries/tg.png b/gui/src/main/resources/images/countries/tg.png
similarity index 100%
rename from src/main/resources/images/countries/tg.png
rename to gui/src/main/resources/images/countries/tg.png
diff --git a/src/main/resources/images/countries/th.png b/gui/src/main/resources/images/countries/th.png
similarity index 100%
rename from src/main/resources/images/countries/th.png
rename to gui/src/main/resources/images/countries/th.png
diff --git a/src/main/resources/images/countries/tj.png b/gui/src/main/resources/images/countries/tj.png
similarity index 100%
rename from src/main/resources/images/countries/tj.png
rename to gui/src/main/resources/images/countries/tj.png
diff --git a/src/main/resources/images/countries/tk.png b/gui/src/main/resources/images/countries/tk.png
similarity index 100%
rename from src/main/resources/images/countries/tk.png
rename to gui/src/main/resources/images/countries/tk.png
diff --git a/src/main/resources/images/countries/tl.png b/gui/src/main/resources/images/countries/tl.png
similarity index 100%
rename from src/main/resources/images/countries/tl.png
rename to gui/src/main/resources/images/countries/tl.png
diff --git a/src/main/resources/images/countries/tm.png b/gui/src/main/resources/images/countries/tm.png
similarity index 100%
rename from src/main/resources/images/countries/tm.png
rename to gui/src/main/resources/images/countries/tm.png
diff --git a/src/main/resources/images/countries/tn.png b/gui/src/main/resources/images/countries/tn.png
similarity index 100%
rename from src/main/resources/images/countries/tn.png
rename to gui/src/main/resources/images/countries/tn.png
diff --git a/src/main/resources/images/countries/to.png b/gui/src/main/resources/images/countries/to.png
similarity index 100%
rename from src/main/resources/images/countries/to.png
rename to gui/src/main/resources/images/countries/to.png
diff --git a/src/main/resources/images/countries/tr.png b/gui/src/main/resources/images/countries/tr.png
similarity index 100%
rename from src/main/resources/images/countries/tr.png
rename to gui/src/main/resources/images/countries/tr.png
diff --git a/src/main/resources/images/countries/tt.png b/gui/src/main/resources/images/countries/tt.png
similarity index 100%
rename from src/main/resources/images/countries/tt.png
rename to gui/src/main/resources/images/countries/tt.png
diff --git a/src/main/resources/images/countries/tv.png b/gui/src/main/resources/images/countries/tv.png
similarity index 100%
rename from src/main/resources/images/countries/tv.png
rename to gui/src/main/resources/images/countries/tv.png
diff --git a/src/main/resources/images/countries/tw.png b/gui/src/main/resources/images/countries/tw.png
similarity index 100%
rename from src/main/resources/images/countries/tw.png
rename to gui/src/main/resources/images/countries/tw.png
diff --git a/src/main/resources/images/countries/tz.png b/gui/src/main/resources/images/countries/tz.png
similarity index 100%
rename from src/main/resources/images/countries/tz.png
rename to gui/src/main/resources/images/countries/tz.png
diff --git a/src/main/resources/images/countries/ua.png b/gui/src/main/resources/images/countries/ua.png
similarity index 100%
rename from src/main/resources/images/countries/ua.png
rename to gui/src/main/resources/images/countries/ua.png
diff --git a/src/main/resources/images/countries/ug.png b/gui/src/main/resources/images/countries/ug.png
similarity index 100%
rename from src/main/resources/images/countries/ug.png
rename to gui/src/main/resources/images/countries/ug.png
diff --git a/src/main/resources/images/countries/uk.png b/gui/src/main/resources/images/countries/uk.png
similarity index 100%
rename from src/main/resources/images/countries/uk.png
rename to gui/src/main/resources/images/countries/uk.png
diff --git a/src/main/resources/images/countries/um.png b/gui/src/main/resources/images/countries/um.png
similarity index 100%
rename from src/main/resources/images/countries/um.png
rename to gui/src/main/resources/images/countries/um.png
diff --git a/src/main/resources/images/countries/us.png b/gui/src/main/resources/images/countries/us.png
similarity index 100%
rename from src/main/resources/images/countries/us.png
rename to gui/src/main/resources/images/countries/us.png
diff --git a/src/main/resources/images/countries/uy.png b/gui/src/main/resources/images/countries/uy.png
similarity index 100%
rename from src/main/resources/images/countries/uy.png
rename to gui/src/main/resources/images/countries/uy.png
diff --git a/src/main/resources/images/countries/uz.png b/gui/src/main/resources/images/countries/uz.png
similarity index 100%
rename from src/main/resources/images/countries/uz.png
rename to gui/src/main/resources/images/countries/uz.png
diff --git a/src/main/resources/images/countries/va.png b/gui/src/main/resources/images/countries/va.png
similarity index 100%
rename from src/main/resources/images/countries/va.png
rename to gui/src/main/resources/images/countries/va.png
diff --git a/src/main/resources/images/countries/vc.png b/gui/src/main/resources/images/countries/vc.png
similarity index 100%
rename from src/main/resources/images/countries/vc.png
rename to gui/src/main/resources/images/countries/vc.png
diff --git a/src/main/resources/images/countries/ve.png b/gui/src/main/resources/images/countries/ve.png
similarity index 100%
rename from src/main/resources/images/countries/ve.png
rename to gui/src/main/resources/images/countries/ve.png
diff --git a/src/main/resources/images/countries/vg.png b/gui/src/main/resources/images/countries/vg.png
similarity index 100%
rename from src/main/resources/images/countries/vg.png
rename to gui/src/main/resources/images/countries/vg.png
diff --git a/src/main/resources/images/countries/vi.png b/gui/src/main/resources/images/countries/vi.png
similarity index 100%
rename from src/main/resources/images/countries/vi.png
rename to gui/src/main/resources/images/countries/vi.png
diff --git a/src/main/resources/images/countries/vn.png b/gui/src/main/resources/images/countries/vn.png
similarity index 100%
rename from src/main/resources/images/countries/vn.png
rename to gui/src/main/resources/images/countries/vn.png
diff --git a/src/main/resources/images/countries/vu.png b/gui/src/main/resources/images/countries/vu.png
similarity index 100%
rename from src/main/resources/images/countries/vu.png
rename to gui/src/main/resources/images/countries/vu.png
diff --git a/src/main/resources/images/countries/wales.png b/gui/src/main/resources/images/countries/wales.png
similarity index 100%
rename from src/main/resources/images/countries/wales.png
rename to gui/src/main/resources/images/countries/wales.png
diff --git a/src/main/resources/images/countries/wf.png b/gui/src/main/resources/images/countries/wf.png
similarity index 100%
rename from src/main/resources/images/countries/wf.png
rename to gui/src/main/resources/images/countries/wf.png
diff --git a/src/main/resources/images/countries/ws.png b/gui/src/main/resources/images/countries/ws.png
similarity index 100%
rename from src/main/resources/images/countries/ws.png
rename to gui/src/main/resources/images/countries/ws.png
diff --git a/src/main/resources/images/countries/ye.png b/gui/src/main/resources/images/countries/ye.png
similarity index 100%
rename from src/main/resources/images/countries/ye.png
rename to gui/src/main/resources/images/countries/ye.png
diff --git a/src/main/resources/images/countries/yt.png b/gui/src/main/resources/images/countries/yt.png
similarity index 100%
rename from src/main/resources/images/countries/yt.png
rename to gui/src/main/resources/images/countries/yt.png
diff --git a/src/main/resources/images/countries/za.png b/gui/src/main/resources/images/countries/za.png
similarity index 100%
rename from src/main/resources/images/countries/za.png
rename to gui/src/main/resources/images/countries/za.png
diff --git a/src/main/resources/images/countries/zm.png b/gui/src/main/resources/images/countries/zm.png
similarity index 100%
rename from src/main/resources/images/countries/zm.png
rename to gui/src/main/resources/images/countries/zm.png
diff --git a/src/main/resources/images/countries/zw.png b/gui/src/main/resources/images/countries/zw.png
similarity index 100%
rename from src/main/resources/images/countries/zw.png
rename to gui/src/main/resources/images/countries/zw.png
diff --git a/src/main/resources/images/expand.png b/gui/src/main/resources/images/expand.png
similarity index 100%
rename from src/main/resources/images/expand.png
rename to gui/src/main/resources/images/expand.png
diff --git a/src/main/resources/images/expand@2x.png b/gui/src/main/resources/images/expand@2x.png
similarity index 100%
rename from src/main/resources/images/expand@2x.png
rename to gui/src/main/resources/images/expand@2x.png
diff --git a/src/main/resources/images/info.png b/gui/src/main/resources/images/info.png
similarity index 100%
rename from src/main/resources/images/info.png
rename to gui/src/main/resources/images/info.png
diff --git a/src/main/resources/images/info@2x.png b/gui/src/main/resources/images/info@2x.png
similarity index 100%
rename from src/main/resources/images/info@2x.png
rename to gui/src/main/resources/images/info@2x.png
diff --git a/src/main/resources/images/logo_splash.png b/gui/src/main/resources/images/logo_splash.png
similarity index 100%
rename from src/main/resources/images/logo_splash.png
rename to gui/src/main/resources/images/logo_splash.png
diff --git a/src/main/resources/images/logo_splash@2x.png b/gui/src/main/resources/images/logo_splash@2x.png
similarity index 100%
rename from src/main/resources/images/logo_splash@2x.png
rename to gui/src/main/resources/images/logo_splash@2x.png
diff --git a/src/main/resources/images/nav/account.png b/gui/src/main/resources/images/nav/account.png
similarity index 100%
rename from src/main/resources/images/nav/account.png
rename to gui/src/main/resources/images/nav/account.png
diff --git a/src/main/resources/images/nav/account@2x.png b/gui/src/main/resources/images/nav/account@2x.png
similarity index 100%
rename from src/main/resources/images/nav/account@2x.png
rename to gui/src/main/resources/images/nav/account@2x.png
diff --git a/src/main/resources/images/nav/account_active.png b/gui/src/main/resources/images/nav/account_active.png
similarity index 100%
rename from src/main/resources/images/nav/account_active.png
rename to gui/src/main/resources/images/nav/account_active.png
diff --git a/src/main/resources/images/nav/account_active@2x.png b/gui/src/main/resources/images/nav/account_active@2x.png
similarity index 100%
rename from src/main/resources/images/nav/account_active@2x.png
rename to gui/src/main/resources/images/nav/account_active@2x.png
diff --git a/src/main/resources/images/nav/buy.png b/gui/src/main/resources/images/nav/buy.png
similarity index 100%
rename from src/main/resources/images/nav/buy.png
rename to gui/src/main/resources/images/nav/buy.png
diff --git a/src/main/resources/images/nav/buy@2x.png b/gui/src/main/resources/images/nav/buy@2x.png
similarity index 100%
rename from src/main/resources/images/nav/buy@2x.png
rename to gui/src/main/resources/images/nav/buy@2x.png
diff --git a/src/main/resources/images/nav/buy_active.png b/gui/src/main/resources/images/nav/buy_active.png
similarity index 100%
rename from src/main/resources/images/nav/buy_active.png
rename to gui/src/main/resources/images/nav/buy_active.png
diff --git a/src/main/resources/images/nav/buy_active@2x.png b/gui/src/main/resources/images/nav/buy_active@2x.png
similarity index 100%
rename from src/main/resources/images/nav/buy_active@2x.png
rename to gui/src/main/resources/images/nav/buy_active@2x.png
diff --git a/src/main/resources/images/nav/funds.png b/gui/src/main/resources/images/nav/funds.png
similarity index 100%
rename from src/main/resources/images/nav/funds.png
rename to gui/src/main/resources/images/nav/funds.png
diff --git a/src/main/resources/images/nav/funds@2x.png b/gui/src/main/resources/images/nav/funds@2x.png
similarity index 100%
rename from src/main/resources/images/nav/funds@2x.png
rename to gui/src/main/resources/images/nav/funds@2x.png
diff --git a/src/main/resources/images/nav/funds_active.png b/gui/src/main/resources/images/nav/funds_active.png
similarity index 100%
rename from src/main/resources/images/nav/funds_active.png
rename to gui/src/main/resources/images/nav/funds_active.png
diff --git a/src/main/resources/images/nav/funds_active@2x.png b/gui/src/main/resources/images/nav/funds_active@2x.png
similarity index 100%
rename from src/main/resources/images/nav/funds_active@2x.png
rename to gui/src/main/resources/images/nav/funds_active@2x.png
diff --git a/src/main/resources/images/nav/home.png b/gui/src/main/resources/images/nav/home.png
similarity index 100%
rename from src/main/resources/images/nav/home.png
rename to gui/src/main/resources/images/nav/home.png
diff --git a/src/main/resources/images/nav/home@2x.png b/gui/src/main/resources/images/nav/home@2x.png
similarity index 100%
rename from src/main/resources/images/nav/home@2x.png
rename to gui/src/main/resources/images/nav/home@2x.png
diff --git a/src/main/resources/images/nav/home_active.png b/gui/src/main/resources/images/nav/home_active.png
similarity index 100%
rename from src/main/resources/images/nav/home_active.png
rename to gui/src/main/resources/images/nav/home_active.png
diff --git a/src/main/resources/images/nav/home_active@2x.png b/gui/src/main/resources/images/nav/home_active@2x.png
similarity index 100%
rename from src/main/resources/images/nav/home_active@2x.png
rename to gui/src/main/resources/images/nav/home_active@2x.png
diff --git a/src/main/resources/images/nav/msg.png b/gui/src/main/resources/images/nav/msg.png
similarity index 100%
rename from src/main/resources/images/nav/msg.png
rename to gui/src/main/resources/images/nav/msg.png
diff --git a/src/main/resources/images/nav/msg@2x.png b/gui/src/main/resources/images/nav/msg@2x.png
similarity index 100%
rename from src/main/resources/images/nav/msg@2x.png
rename to gui/src/main/resources/images/nav/msg@2x.png
diff --git a/src/main/resources/images/nav/msg_active.png b/gui/src/main/resources/images/nav/msg_active.png
similarity index 100%
rename from src/main/resources/images/nav/msg_active.png
rename to gui/src/main/resources/images/nav/msg_active.png
diff --git a/src/main/resources/images/nav/msg_active@2x.png b/gui/src/main/resources/images/nav/msg_active@2x.png
similarity index 100%
rename from src/main/resources/images/nav/msg_active@2x.png
rename to gui/src/main/resources/images/nav/msg_active@2x.png
diff --git a/src/main/resources/images/nav/portfolio.png b/gui/src/main/resources/images/nav/portfolio.png
similarity index 100%
rename from src/main/resources/images/nav/portfolio.png
rename to gui/src/main/resources/images/nav/portfolio.png
diff --git a/src/main/resources/images/nav/portfolio@2x.png b/gui/src/main/resources/images/nav/portfolio@2x.png
similarity index 100%
rename from src/main/resources/images/nav/portfolio@2x.png
rename to gui/src/main/resources/images/nav/portfolio@2x.png
diff --git a/src/main/resources/images/nav/portfolio_active.png b/gui/src/main/resources/images/nav/portfolio_active.png
similarity index 100%
rename from src/main/resources/images/nav/portfolio_active.png
rename to gui/src/main/resources/images/nav/portfolio_active.png
diff --git a/src/main/resources/images/nav/portfolio_active@2x.png b/gui/src/main/resources/images/nav/portfolio_active@2x.png
similarity index 100%
rename from src/main/resources/images/nav/portfolio_active@2x.png
rename to gui/src/main/resources/images/nav/portfolio_active@2x.png
diff --git a/src/main/resources/images/nav/sell.png b/gui/src/main/resources/images/nav/sell.png
similarity index 100%
rename from src/main/resources/images/nav/sell.png
rename to gui/src/main/resources/images/nav/sell.png
diff --git a/src/main/resources/images/nav/sell@2x.png b/gui/src/main/resources/images/nav/sell@2x.png
similarity index 100%
rename from src/main/resources/images/nav/sell@2x.png
rename to gui/src/main/resources/images/nav/sell@2x.png
diff --git a/src/main/resources/images/nav/sell_active.png b/gui/src/main/resources/images/nav/sell_active.png
similarity index 100%
rename from src/main/resources/images/nav/sell_active.png
rename to gui/src/main/resources/images/nav/sell_active.png
diff --git a/src/main/resources/images/nav/sell_active@2x.png b/gui/src/main/resources/images/nav/sell_active@2x.png
similarity index 100%
rename from src/main/resources/images/nav/sell_active@2x.png
rename to gui/src/main/resources/images/nav/sell_active@2x.png
diff --git a/src/main/resources/images/nav/settings.png b/gui/src/main/resources/images/nav/settings.png
similarity index 100%
rename from src/main/resources/images/nav/settings.png
rename to gui/src/main/resources/images/nav/settings.png
diff --git a/src/main/resources/images/nav/settings@2x.png b/gui/src/main/resources/images/nav/settings@2x.png
similarity index 100%
rename from src/main/resources/images/nav/settings@2x.png
rename to gui/src/main/resources/images/nav/settings@2x.png
diff --git a/src/main/resources/images/nav/settings_active.png b/gui/src/main/resources/images/nav/settings_active.png
similarity index 100%
rename from src/main/resources/images/nav/settings_active.png
rename to gui/src/main/resources/images/nav/settings_active.png
diff --git a/src/main/resources/images/nav/settings_active@2x.png b/gui/src/main/resources/images/nav/settings_active@2x.png
similarity index 100%
rename from src/main/resources/images/nav/settings_active@2x.png
rename to gui/src/main/resources/images/nav/settings_active@2x.png
diff --git a/src/main/resources/images/notification_logo.png b/gui/src/main/resources/images/notification_logo.png
similarity index 100%
rename from src/main/resources/images/notification_logo.png
rename to gui/src/main/resources/images/notification_logo.png
diff --git a/src/main/resources/images/notification_logo@2x.png b/gui/src/main/resources/images/notification_logo@2x.png
similarity index 100%
rename from src/main/resources/images/notification_logo@2x.png
rename to gui/src/main/resources/images/notification_logo@2x.png
diff --git a/src/main/resources/images/remove.png b/gui/src/main/resources/images/remove.png
similarity index 100%
rename from src/main/resources/images/remove.png
rename to gui/src/main/resources/images/remove.png
diff --git a/src/main/resources/images/remove@2x.png b/gui/src/main/resources/images/remove@2x.png
similarity index 100%
rename from src/main/resources/images/remove@2x.png
rename to gui/src/main/resources/images/remove@2x.png
diff --git a/src/main/resources/images/sell.png b/gui/src/main/resources/images/sell.png
similarity index 100%
rename from src/main/resources/images/sell.png
rename to gui/src/main/resources/images/sell.png
diff --git a/src/main/resources/images/sell@2x.png b/gui/src/main/resources/images/sell@2x.png
similarity index 100%
rename from src/main/resources/images/sell@2x.png
rename to gui/src/main/resources/images/sell@2x.png
diff --git a/src/main/resources/images/sell_large.png b/gui/src/main/resources/images/sell_large.png
similarity index 100%
rename from src/main/resources/images/sell_large.png
rename to gui/src/main/resources/images/sell_large.png
diff --git a/src/main/resources/images/sell_large@2x.png b/gui/src/main/resources/images/sell_large@2x.png
similarity index 100%
rename from src/main/resources/images/sell_large@2x.png
rename to gui/src/main/resources/images/sell_large@2x.png
diff --git a/src/main/resources/images/system_tray_icon.png b/gui/src/main/resources/images/system_tray_icon.png
similarity index 100%
rename from src/main/resources/images/system_tray_icon.png
rename to gui/src/main/resources/images/system_tray_icon.png
diff --git a/src/main/resources/images/system_tray_icon@2x.png b/gui/src/main/resources/images/system_tray_icon@2x.png
similarity index 100%
rename from src/main/resources/images/system_tray_icon@2x.png
rename to gui/src/main/resources/images/system_tray_icon@2x.png
diff --git a/src/main/resources/images/system_tray_icon_linux.png b/gui/src/main/resources/images/system_tray_icon_linux.png
similarity index 100%
rename from src/main/resources/images/system_tray_icon_linux.png
rename to gui/src/main/resources/images/system_tray_icon_linux.png
diff --git a/src/main/resources/images/system_tray_icon_windows.png b/gui/src/main/resources/images/system_tray_icon_windows.png
similarity index 100%
rename from src/main/resources/images/system_tray_icon_windows.png
rename to gui/src/main/resources/images/system_tray_icon_windows.png
diff --git a/src/main/resources/images/task_bar_icon_linux.png b/gui/src/main/resources/images/task_bar_icon_linux.png
similarity index 100%
rename from src/main/resources/images/task_bar_icon_linux.png
rename to gui/src/main/resources/images/task_bar_icon_linux.png
diff --git a/src/main/resources/images/task_bar_icon_windows.png b/gui/src/main/resources/images/task_bar_icon_windows.png
similarity index 100%
rename from src/main/resources/images/task_bar_icon_windows.png
rename to gui/src/main/resources/images/task_bar_icon_windows.png
diff --git a/src/main/resources/images/tick.png b/gui/src/main/resources/images/tick.png
similarity index 100%
rename from src/main/resources/images/tick.png
rename to gui/src/main/resources/images/tick.png
diff --git a/src/main/resources/images/tick@2x.png b/gui/src/main/resources/images/tick@2x.png
similarity index 100%
rename from src/main/resources/images/tick@2x.png
rename to gui/src/main/resources/images/tick@2x.png
diff --git a/src/main/resources/images/update/update_available.png b/gui/src/main/resources/images/update/update_available.png
similarity index 100%
rename from src/main/resources/images/update/update_available.png
rename to gui/src/main/resources/images/update/update_available.png
diff --git a/src/main/resources/images/update/update_available@2x.png b/gui/src/main/resources/images/update/update_available@2x.png
similarity index 100%
rename from src/main/resources/images/update/update_available@2x.png
rename to gui/src/main/resources/images/update/update_available@2x.png
diff --git a/src/main/resources/images/update/update_failed.png b/gui/src/main/resources/images/update/update_failed.png
similarity index 100%
rename from src/main/resources/images/update/update_failed.png
rename to gui/src/main/resources/images/update/update_failed.png
diff --git a/src/main/resources/images/update/update_failed@2x.png b/gui/src/main/resources/images/update/update_failed@2x.png
similarity index 100%
rename from src/main/resources/images/update/update_failed@2x.png
rename to gui/src/main/resources/images/update/update_failed@2x.png
diff --git a/src/main/resources/images/update/update_in_progress.png b/gui/src/main/resources/images/update/update_in_progress.png
similarity index 100%
rename from src/main/resources/images/update/update_in_progress.png
rename to gui/src/main/resources/images/update/update_in_progress.png
diff --git a/src/main/resources/images/update/update_in_progress@2x.png b/gui/src/main/resources/images/update/update_in_progress@2x.png
similarity index 100%
rename from src/main/resources/images/update/update_in_progress@2x.png
rename to gui/src/main/resources/images/update/update_in_progress@2x.png
diff --git a/src/main/resources/images/update/update_up_to_date.png b/gui/src/main/resources/images/update/update_up_to_date.png
similarity index 100%
rename from src/main/resources/images/update/update_up_to_date.png
rename to gui/src/main/resources/images/update/update_up_to_date.png
diff --git a/src/main/resources/images/update/update_up_to_date@2x.png b/gui/src/main/resources/images/update/update_up_to_date@2x.png
similarity index 100%
rename from src/main/resources/images/update/update_up_to_date@2x.png
rename to gui/src/main/resources/images/update/update_up_to_date@2x.png
diff --git a/src/main/resources/images/window_icon.png b/gui/src/main/resources/images/window_icon.png
similarity index 100%
rename from src/main/resources/images/window_icon.png
rename to gui/src/main/resources/images/window_icon.png
diff --git a/src/main/resources/images/window_icon@2x.png b/gui/src/main/resources/images/window_icon@2x.png
similarity index 100%
rename from src/main/resources/images/window_icon@2x.png
rename to gui/src/main/resources/images/window_icon@2x.png
diff --git a/src/main/resources/logback.xml b/gui/src/main/resources/logback.xml
similarity index 100%
rename from src/main/resources/logback.xml
rename to gui/src/main/resources/logback.xml
diff --git a/src/main/resources/wallet/checkpoints b/gui/src/main/resources/wallet/checkpoints
similarity index 100%
rename from src/main/resources/wallet/checkpoints
rename to gui/src/main/resources/wallet/checkpoints
diff --git a/src/main/resources/wallet/checkpoints.testnet b/gui/src/main/resources/wallet/checkpoints.testnet
similarity index 100%
rename from src/main/resources/wallet/checkpoints.testnet
rename to gui/src/main/resources/wallet/checkpoints.testnet
diff --git a/src/test/java/io/bitsquare/app/BitsquareEnvironmentTests.java b/gui/src/test/java/io/bitsquare/app/BitsquareEnvironmentTests.java
similarity index 100%
rename from src/test/java/io/bitsquare/app/BitsquareEnvironmentTests.java
rename to gui/src/test/java/io/bitsquare/app/BitsquareEnvironmentTests.java
diff --git a/src/test/java/io/bitsquare/btc/RestrictionsTest.java b/gui/src/test/java/io/bitsquare/btc/RestrictionsTest.java
similarity index 100%
rename from src/test/java/io/bitsquare/btc/RestrictionsTest.java
rename to gui/src/test/java/io/bitsquare/btc/RestrictionsTest.java
diff --git a/src/test/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferViewModelTest.java b/gui/src/test/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferViewModelTest.java
similarity index 100%
rename from src/test/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferViewModelTest.java
rename to gui/src/test/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferViewModelTest.java
diff --git a/src/test/java/io/bitsquare/gui/util/BSFormatterTest.java b/gui/src/test/java/io/bitsquare/gui/util/BSFormatterTest.java
similarity index 100%
rename from src/test/java/io/bitsquare/gui/util/BSFormatterTest.java
rename to gui/src/test/java/io/bitsquare/gui/util/BSFormatterTest.java
diff --git a/src/test/java/io/bitsquare/gui/util/validation/BtcValidatorTest.java b/gui/src/test/java/io/bitsquare/gui/util/validation/BtcValidatorTest.java
similarity index 100%
rename from src/test/java/io/bitsquare/gui/util/validation/BtcValidatorTest.java
rename to gui/src/test/java/io/bitsquare/gui/util/validation/BtcValidatorTest.java
diff --git a/src/test/java/io/bitsquare/gui/util/validation/FiatValidatorTest.java b/gui/src/test/java/io/bitsquare/gui/util/validation/FiatValidatorTest.java
similarity index 100%
rename from src/test/java/io/bitsquare/gui/util/validation/FiatValidatorTest.java
rename to gui/src/test/java/io/bitsquare/gui/util/validation/FiatValidatorTest.java
diff --git a/src/test/java/io/bitsquare/msg/TomP2PTests.java b/gui/src/test/java/io/bitsquare/msg/TomP2PTests.java
similarity index 100%
rename from src/test/java/io/bitsquare/msg/TomP2PTests.java
rename to gui/src/test/java/io/bitsquare/msg/TomP2PTests.java
diff --git a/src/test/java/io/bitsquare/msg/tomp2p/TomP2PNodeTest.java b/gui/src/test/java/io/bitsquare/msg/tomp2p/TomP2PNodeTest.java
similarity index 100%
rename from src/test/java/io/bitsquare/msg/tomp2p/TomP2PNodeTest.java
rename to gui/src/test/java/io/bitsquare/msg/tomp2p/TomP2PNodeTest.java
diff --git a/src/test/java/io/bitsquare/network/NodeTests.java b/gui/src/test/java/io/bitsquare/network/NodeTests.java
similarity index 100%
rename from src/test/java/io/bitsquare/network/NodeTests.java
rename to gui/src/test/java/io/bitsquare/network/NodeTests.java
diff --git a/src/test/java/io/bitsquare/network/tomp2p/TomP2PPeerTest.java b/gui/src/test/java/io/bitsquare/network/tomp2p/TomP2PPeerTest.java
similarity index 100%
rename from src/test/java/io/bitsquare/network/tomp2p/TomP2PPeerTest.java
rename to gui/src/test/java/io/bitsquare/network/tomp2p/TomP2PPeerTest.java
diff --git a/src/test/java/io/bitsquare/util/Repeat.java b/gui/src/test/java/io/bitsquare/util/Repeat.java
similarity index 100%
rename from src/test/java/io/bitsquare/util/Repeat.java
rename to gui/src/test/java/io/bitsquare/util/Repeat.java
diff --git a/src/test/java/io/bitsquare/util/RepeatRule.java b/gui/src/test/java/io/bitsquare/util/RepeatRule.java
similarity index 100%
rename from src/test/java/io/bitsquare/util/RepeatRule.java
rename to gui/src/test/java/io/bitsquare/util/RepeatRule.java
diff --git a/src/test/java/io/bitsquare/util/RepeatRuleTests.java b/gui/src/test/java/io/bitsquare/util/RepeatRuleTests.java
similarity index 100%
rename from src/test/java/io/bitsquare/util/RepeatRuleTests.java
rename to gui/src/test/java/io/bitsquare/util/RepeatRuleTests.java
diff --git a/src/test/java/net/tomp2p/dht/UtilsDHT2.java b/gui/src/test/java/net/tomp2p/dht/UtilsDHT2.java
similarity index 100%
rename from src/test/java/net/tomp2p/dht/UtilsDHT2.java
rename to gui/src/test/java/net/tomp2p/dht/UtilsDHT2.java
diff --git a/src/test/java/viewfx/view/support/CachingViewLoaderTests.java b/gui/src/test/java/viewfx/view/support/CachingViewLoaderTests.java
similarity index 100%
rename from src/test/java/viewfx/view/support/CachingViewLoaderTests.java
rename to gui/src/test/java/viewfx/view/support/CachingViewLoaderTests.java
diff --git a/src/test/java/viewfx/view/support/fxml/FxmlViewLoaderTests$Malformed.fxml b/gui/src/test/java/viewfx/view/support/fxml/FxmlViewLoaderTests$Malformed.fxml
similarity index 100%
rename from src/test/java/viewfx/view/support/fxml/FxmlViewLoaderTests$Malformed.fxml
rename to gui/src/test/java/viewfx/view/support/fxml/FxmlViewLoaderTests$Malformed.fxml
diff --git a/src/test/java/viewfx/view/support/fxml/FxmlViewLoaderTests$MissingFxController.fxml b/gui/src/test/java/viewfx/view/support/fxml/FxmlViewLoaderTests$MissingFxController.fxml
similarity index 100%
rename from src/test/java/viewfx/view/support/fxml/FxmlViewLoaderTests$MissingFxController.fxml
rename to gui/src/test/java/viewfx/view/support/fxml/FxmlViewLoaderTests$MissingFxController.fxml
diff --git a/src/test/java/viewfx/view/support/fxml/FxmlViewLoaderTests$MissingFxmlViewAnnotation.fxml b/gui/src/test/java/viewfx/view/support/fxml/FxmlViewLoaderTests$MissingFxmlViewAnnotation.fxml
similarity index 100%
rename from src/test/java/viewfx/view/support/fxml/FxmlViewLoaderTests$MissingFxmlViewAnnotation.fxml
rename to gui/src/test/java/viewfx/view/support/fxml/FxmlViewLoaderTests$MissingFxmlViewAnnotation.fxml
diff --git a/src/test/java/viewfx/view/support/fxml/FxmlViewLoaderTests$WellFormed.fxml b/gui/src/test/java/viewfx/view/support/fxml/FxmlViewLoaderTests$WellFormed.fxml
similarity index 100%
rename from src/test/java/viewfx/view/support/fxml/FxmlViewLoaderTests$WellFormed.fxml
rename to gui/src/test/java/viewfx/view/support/fxml/FxmlViewLoaderTests$WellFormed.fxml
diff --git a/src/test/java/viewfx/view/support/fxml/FxmlViewLoaderTests.java b/gui/src/test/java/viewfx/view/support/fxml/FxmlViewLoaderTests.java
similarity index 100%
rename from src/test/java/viewfx/view/support/fxml/FxmlViewLoaderTests.java
rename to gui/src/test/java/viewfx/view/support/fxml/FxmlViewLoaderTests.java
diff --git a/package/linux.sh b/package/linux.sh
deleted file mode 100755
index 5b32e45b48..0000000000
--- a/package/linux.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/bash
-
-set -e
-
-version=$1
-jar=$2
-mainClass=$3
-
-javapackager -deploy \
-    -BappVersion=$version \
-    -Bcategory=Finance \
-    -BlicenseType=GPLv3 \
-    -Bemail=info@bitsquare.io \
-    -native deb \
-    -name Bitsquare \
-    -title Bitsquare \
-    -vendor Bitsquare \
-    -outdir build \
-    -appclass $mainClass \
-    -srcfiles $jar \
-    -outfile Bitsquare
-
-# -Bicon=client/icons/icon.png \
diff --git a/package/linux/build_create_app.sh b/package/linux/build_create_app.sh
new file mode 100644
index 0000000000..062ccd985f
--- /dev/null
+++ b/package/linux/build_create_app.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+cd ../../
+mvn clean package -DskipTests -Dmaven.javadoc.skip=true
+cp gui/target/shaded.jar gui/updatefx/builds/1.jar
+
+# edit url
+java -jar ./updatefx/updatefx-app-1.2.jar --url=http://localhost:8000/ gui/updatefx
+
+# Note: fakeroot needs to be installed on linux
+$JAVA_HOME/bin/javapackager \
+    -deploy \
+    -BappVersion=0.1.1-SNAPSHOT \
+    -Bcategory=Finance \
+    -Bemail=team@bitsquare.io \
+    -BlicenseType=GPLv3 \
+    -native deb \
+    -name Bitsquare \
+    -title Bitsquare \
+    -vendor Bitsquare \
+    -outdir gui/deploy \
+    -srcfiles gui/updatefx/builds/processed/1.jar \
+    -appclass io.bitsquare.app.gui.BitsquareAppMain \
+    -outfile Bitsquare
+    
+# TODO icons:  -Bicon=client/icons/icon.png \
+
+cd package/linux
diff --git a/package/linux/build_setup.sh b/package/linux/build_setup.sh
new file mode 100644
index 0000000000..a60f34d934
--- /dev/null
+++ b/package/linux/build_setup.sh
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+# setup dirs
+cd ../../
+mkdir gui/updatefx
+mkdir gui/updatefx/builds
+mkdir gui/updatefx/builds/processed
+mkdir gui/updatefx/site
+mkdir gui/deploy
+
+# create key/wallet. Copy wallet to UpdateProcess or use wallet form other OS build
+java -jar ./updatefx/updatefx-app-1.2.jar --url=http://localhost:8000/ gui/updatefx
+
+cd package/linux
+
+# start webserver for update data
+# cd ../../gui/updatefx/site
+# python -m SimpleHTTPServer 8000
diff --git a/package/linux/build_update.sh b/package/linux/build_update.sh
new file mode 100644
index 0000000000..dbc24ff812
--- /dev/null
+++ b/package/linux/build_update.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+cd ../../
+mvn clean package -DskipTests -Dmaven.javadoc.skip=true
+
+# edit version /*.jar
+cp gui/target/shaded.jar gui/updatefx/builds/2.jar
+
+# edit url
+java -jar ./updatefx/updatefx-app-1.2.jar --url=http://localhost:8000/ gui/updatefx
+
+cd package/linux
\ No newline at end of file
diff --git a/package/mac.sh b/package/mac.sh
deleted file mode 100755
index d8f0882c28..0000000000
--- a/package/mac.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/bash
-
-set -e
-
-version=$1
-jar=$2
-mainClass=$3
-
-$JAVA_HOME/bin/javapackager \
-    -deploy \
-    -BappVersion=$version \
-    -Bmac.CFBundleIdentifier=bitsquare \
-    -Bmac.CFBundleName=Bitsquare \
-    -Bruntime="$JAVA_HOME/../../" \
-    -native dmg \
-    -name Bitsquare \
-    -title Bitsquare \
-    -vendor Bitsquare \
-    -outdir build \
-    -srcfiles $jar \
-    -appclass $mainClass \
-    -outfile Bitsquare
-
-#-Bicon=client/icons/mac.icns \
diff --git a/package/mac/Bitsquare.icns b/package/mac/Bitsquare.icns
new file mode 100644
index 0000000000..5464bb5b61
Binary files /dev/null and b/package/mac/Bitsquare.icns differ
diff --git a/src/deploy/package/shortcut-128.png b/package/mac/Bitsquare.iconset/icon_128x128.png
similarity index 100%
rename from src/deploy/package/shortcut-128.png
rename to package/mac/Bitsquare.iconset/icon_128x128.png
diff --git a/src/deploy/package/shortcut-128@2x.png b/package/mac/Bitsquare.iconset/icon_128x128@2x.png
similarity index 100%
rename from src/deploy/package/shortcut-128@2x.png
rename to package/mac/Bitsquare.iconset/icon_128x128@2x.png
diff --git a/src/deploy/package/shortcut-16.png b/package/mac/Bitsquare.iconset/icon_16x16.png
similarity index 100%
rename from src/deploy/package/shortcut-16.png
rename to package/mac/Bitsquare.iconset/icon_16x16.png
diff --git a/src/deploy/package/shortcut-16@2x.png b/package/mac/Bitsquare.iconset/icon_16x16@2x.png
similarity index 100%
rename from src/deploy/package/shortcut-16@2x.png
rename to package/mac/Bitsquare.iconset/icon_16x16@2x.png
diff --git a/src/deploy/package/shortcut-256.png b/package/mac/Bitsquare.iconset/icon_256x256.png
similarity index 100%
rename from src/deploy/package/shortcut-256.png
rename to package/mac/Bitsquare.iconset/icon_256x256.png
diff --git a/src/deploy/package/shortcut-256@2x.png b/package/mac/Bitsquare.iconset/icon_256x256@2x.png
similarity index 100%
rename from src/deploy/package/shortcut-256@2x.png
rename to package/mac/Bitsquare.iconset/icon_256x256@2x.png
diff --git a/src/deploy/package/shortcut-32.png b/package/mac/Bitsquare.iconset/icon_32x32.png
similarity index 100%
rename from src/deploy/package/shortcut-32.png
rename to package/mac/Bitsquare.iconset/icon_32x32.png
diff --git a/src/deploy/package/shortcut-32@2x.png b/package/mac/Bitsquare.iconset/icon_32x32@2x.png
similarity index 100%
rename from src/deploy/package/shortcut-32@2x.png
rename to package/mac/Bitsquare.iconset/icon_32x32@2x.png
diff --git a/src/deploy/package/shortcut-512.png b/package/mac/Bitsquare.iconset/icon_512x512.png
similarity index 100%
rename from src/deploy/package/shortcut-512.png
rename to package/mac/Bitsquare.iconset/icon_512x512.png
diff --git a/src/deploy/package/shortcut-512@2x.png b/package/mac/Bitsquare.iconset/icon_512x512@2x.png
similarity index 100%
rename from src/deploy/package/shortcut-512@2x.png
rename to package/mac/Bitsquare.iconset/icon_512x512@2x.png
diff --git a/package/mac/build_create_app.sh b/package/mac/build_create_app.sh
new file mode 100644
index 0000000000..1fb59bf829
--- /dev/null
+++ b/package/mac/build_create_app.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+
+cd ../../
+mvn clean package -DskipTests -Dmaven.javadoc.skip=true
+cp gui/target/shaded.jar gui/updatefx/builds/1.jar
+
+# edit url
+java -jar ./updatefx/updatefx-app-1.2.jar --url=http://localhost:8000/ gui/updatefx
+
+$JAVA_HOME/bin/javapackager \
+    -deploy \
+    -BappVersion=0.1.1-SNAPSHOT \
+    -Bmac.CFBundleIdentifier=bitsquare \
+    -Bmac.CFBundleName=Bitsquare \
+    -Bruntime="$JAVA_HOME/../../" \
+    -native dmg \
+    -name Bitsquare \
+    -title Bitsquare \
+    -vendor Bitsquare \
+    -outdir gui/deploy \
+    -srcfiles gui/updatefx/builds/processed/1.jar \
+    -appclass io.bitsquare.app.gui.BitsquareAppMain \
+    -outfile Bitsquare
+    
+cd package/mac
\ No newline at end of file
diff --git a/package/mac/build_setup.sh b/package/mac/build_setup.sh
new file mode 100644
index 0000000000..20ecd043cc
--- /dev/null
+++ b/package/mac/build_setup.sh
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+# setup dirs
+cd ../../
+mkdir gui/updatefx
+mkdir gui/updatefx/builds
+mkdir gui/updatefx/builds/processed
+mkdir gui/updatefx/site
+mkdir gui/deploy
+
+# create key/wallet. Copy wallet to UpdateProcess or use wallet form other OS build
+java -jar ./updatefx/updatefx-app-1.2.jar --url=http://localhost:8000/ gui/updatefx
+
+cd package/mac
+
+# start webserver for update data
+# cd ../../gui/updatefx/site
+# python -m SimpleHTTPServer 8000
+
+# create icons
+# iconutil -c icns package/bitsquare.iconset
diff --git a/package/mac/build_update.sh b/package/mac/build_update.sh
new file mode 100644
index 0000000000..a14de9941f
--- /dev/null
+++ b/package/mac/build_update.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+cd ../../
+mvn clean package -DskipTests -Dmaven.javadoc.skip=true
+
+# edit version /*.jar
+cp gui/target/shaded.jar gui/updatefx/builds/2.jar
+
+# edit url
+java -jar ./updatefx/updatefx-app-1.2.jar --url=http://localhost:8000/ gui/updatefx
+
+cd package/mac
\ No newline at end of file
diff --git a/package/windows.bat b/package/windows.bat
deleted file mode 100644
index 5c99e767cd..0000000000
--- a/package/windows.bat
+++ /dev/null
@@ -1 +0,0 @@
-"c:\Program Files\Java\jdk1.8.0_20\bin\javapackager.exe" -deploy -BappVersion=0.1.1-SNAPSHOT -native exe -name Bitsquare -title Bitsquare -vendor Bitsquare -outdir build -appclass io.bitsquare.app.gui.BitsquareAppMain -srcfiles "build\libs\bitsquare-0.1.1-SNAPSHOT-app.jar" -outfile Bitsquare -Bruntime="c:\Program Files\Java\jdk1.8.0_20\jre"
diff --git a/package/windows/Bitsquare.ico b/package/windows/Bitsquare.ico
new file mode 100644
index 0000000000..d74079df05
Binary files /dev/null and b/package/windows/Bitsquare.ico differ
diff --git a/package/windows/Bitsquare.iss b/package/windows/Bitsquare.iss
index eacc9a7f22..bb6a5aadab 100644
--- a/package/windows/Bitsquare.iss
+++ b/package/windows/Bitsquare.iss
@@ -3,8 +3,8 @@
 [Setup]
 AppId={{bitsquare}}
 AppName=Bitsquare
-AppVersion=0.1.1
-AppVerName=Bitsquare 0.1.1
+AppVersion=0.1.1-SNAPSHOT
+AppVerName=Bitsquare 0.1.1-SNAPSHOT
 AppPublisher=Bitsquare
 AppComments=Bitsquare
 AppCopyright=Copyright (C) 2014
@@ -23,11 +23,11 @@ DefaultGroupName=Bitsquare
 LicenseFile=
 ;WinXP or above
 MinVersion=0,5.1 
-OutputBaseFilename=Bitsquare-0.1.1
+OutputBaseFilename=Bitsquare-0.1.1-SNAPSHOT
 Compression=lzma
 SolidCompression=yes
 PrivilegesRequired=lowest
-SetupIconFile=Bitsquare\Bitsquare.ico
+SetupIconFile=Bitsquare.ico
 UninstallDisplayIcon={app}\Bitsquare.ico
 UninstallDisplayName=Bitsquare
 WizardImageStretch=No
diff --git a/package/windows/build_create_app.bat b/package/windows/build_create_app.bat
new file mode 100644
index 0000000000..17ef44e011
--- /dev/null
+++ b/package/windows/build_create_app.bat
@@ -0,0 +1,13 @@
+@echo off
+
+cd ..\..\
+call mvn clean package -DskipTests -Dmaven.javadoc.skip=true
+copy gui\target\shaded.jar gui\updatefx\builds\1.jar
+
+:: edit url
+call java -Xmx2048m -jar ./updatefx/updatefx-app-1.2.jar --url=http://localhost:8000/ gui/updatefx
+
+:: Needs Inno Setup 5 or later (http://www.jrsoftware.org/isdl.php)
+call "c:\Program Files\Java\jdk1.8.0_40\bin\javapackager.exe" -deploy -BappVersion=0.1 -native exe -name Bitsquare -title Bitsquare -vendor Bitsquare -outdir gui\deploy -appclass io.bitsquare.app.gui.BitsquareAppMain -srcfiles "gui\updatefx\builds\processed\1.jar" -outfile Bitsquare -Bruntime="c:\Program Files\Java\jdk1.8.0_40\jre"
+
+cd package\win
\ No newline at end of file
diff --git a/package/windows/build_setup.bat b/package/windows/build_setup.bat
new file mode 100644
index 0000000000..26ca2a23c9
--- /dev/null
+++ b/package/windows/build_setup.bat
@@ -0,0 +1,18 @@
+@echo off
+
+:: setup dirs
+cd ..\..\
+mkdir gui\updatefx
+mkdir gui\updatefx\builds
+mkdir gui\updatefx\builds\processed
+mkdir gui\updatefx\site
+mkdir gui\deploy
+
+:: create key/wallet. Copy wallet to UpdateProcess or use wallet form other OS build
+call java -Xmx2048m -jar ./updatefx/updatefx-app-1.2.jar --url=http://localhost:8000/ gui/updatefx
+
+cd package\win
+
+:: start webserver for update data
+:: cd ..\..\gui\updatefx\site
+:: python -m SimpleHTTPServer 8000
\ No newline at end of file
diff --git a/package/windows/build_update.bat b/package/windows/build_update.bat
new file mode 100644
index 0000000000..d2023db5f7
--- /dev/null
+++ b/package/windows/build_update.bat
@@ -0,0 +1,9 @@
+@echo off
+
+call mvn clean package -DskipTests -Dmaven.javadoc.skip=true
+
+:: edit version /*.jar
+cp gui\target\shaded.jar gui\updatefx\builds\2.jar
+
+:: edit url
+call java -jar ./updatefx/updatefx-app-1.2.jar --url=http://localhost:8000/ gui/updatefx
\ No newline at end of file
diff --git a/package/msvcp100.dll b/package/windows/msvcp100.dll
similarity index 100%
rename from package/msvcp100.dll
rename to package/windows/msvcp100.dll
diff --git a/package/msvcr100.dll b/package/windows/msvcr100.dll
similarity index 100%
rename from package/msvcr100.dll
rename to package/windows/msvcr100.dll
diff --git a/pom.xml b/pom.xml
new file mode 100755
index 0000000000..0bb602ef1b
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>io.bitsquare</groupId>
+    <artifactId>parent</artifactId>
+    <packaging>pom</packaging>
+    <version>0.1.1-SNAPSHOT</version>
+    <description>The decentralized bitcoin exchange</description>
+    <url>https://bitsquare.io</url>
+
+    <organization>
+        <name>bitsquare.io</name>
+    </organization>
+
+    <licenses>
+        <license>
+            <name>GNU AFFERO GENERAL PUBLIC LICENSE</name>
+            <url>http://www.gnu.org/licenses/agpl-3.0.html</url>
+            <distribution>repo</distribution>
+        </license>
+    </licenses>
+
+    <issueManagement>
+        <system>GitHub</system>
+        <url>https://github.com/bitsquare/bitsquare/issues</url>
+    </issueManagement>
+
+    <scm>
+        <connection>scm:git:https://github.com/bitsquare/bitsquare</connection>
+        <developerConnection>scm:git:https://github.com/bitsquare/bitsquare</developerConnection>
+        <url>scm:git:https://github.com/bitsquare/bitsquare</url>
+    </scm>
+
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+
+    <modules>
+        <module>gui</module>
+        <module>common</module>
+    </modules>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>3.1</version>
+                <configuration>
+                    <source>1.8</source>
+                    <target>1.8</target>
+                </configuration>
+            </plugin>
+
+            <!--<plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-enforcer-plugin</artifactId>
+                <version>1.2</version>
+                <executions>
+                    <execution>
+                        <id>enforce</id>
+                        <configuration>
+                            <rules>
+                                <DependencyConvergence />
+                            </rules>
+                        </configuration>
+                        <goals>
+                            <goal>enforce</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>-->
+
+        </plugins>
+    </build>
+
+    <repositories>
+        <repository>
+            <id>sonatype-oss-snapshot</id>
+            <snapshots/>
+            <url>https://oss.sonatype.org/content/repositories/snapshots</url>
+        </repository>
+        <repository>
+            <id>repository.tomp2p.net</id>
+            <url>http://tomp2p.net/dev/mvn</url>
+        </repository>
+    </repositories>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.bitcoinj</groupId>
+            <artifactId>bitcoinj-core</artifactId>
+            <version>0.12.2</version>
+        </dependency>
+       <!-- <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-jdk14</artifactId>
+            <version>1.7.7</version>
+        </dependency>-->
+        
+        <dependency>
+            <groupId>com.google.guava</groupId>
+            <artifactId>guava</artifactId>
+            <version>16.0.1</version>
+        </dependency>
+
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.11</version>
+        </dependency>
+        <dependency>
+            <groupId>org.mockito</groupId>
+            <artifactId>mockito-core</artifactId>
+            <version>1.10.19</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-test</artifactId>
+            <version>4.1.1.RELEASE</version>
+        </dependency>
+    </dependencies>
+
+</project>
\ No newline at end of file
diff --git a/src/deploy/package/shortcut-64.png b/src/deploy/package/shortcut-64.png
deleted file mode 100644
index d32b9b6f77..0000000000
Binary files a/src/deploy/package/shortcut-64.png and /dev/null differ
diff --git a/src/deploy/package/shortcut-64@2x.png b/src/deploy/package/shortcut-64@2x.png
deleted file mode 100644
index fda27db215..0000000000
Binary files a/src/deploy/package/shortcut-64@2x.png and /dev/null differ
diff --git a/src/main/java/io/bitsquare/app/gui/ExampleApp.java b/src/main/java/io/bitsquare/app/gui/ExampleApp.java
deleted file mode 100644
index 5bf508d61a..0000000000
--- a/src/main/java/io/bitsquare/app/gui/ExampleApp.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * This file is part of Bitsquare.
- *
- * Bitsquare is free software: you can redistribute it and/or modify it
- * under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * Bitsquare is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public
- * License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with Bitsquare. If not, see <http://www.gnu.org/licenses/>.
- */
-
-package io.bitsquare.app.gui;
-
-import org.bitcoinj.utils.BriefLogFormatter;
-
-import com.google.common.util.concurrent.Uninterruptibles;
-
-import java.io.IOException;
-
-import java.util.List;
-import java.util.concurrent.TimeUnit;
-import java.util.logging.FileHandler;
-
-import javafx.application.Application;
-import javafx.geometry.Insets;
-import javafx.geometry.Pos;
-import javafx.scene.*;
-import javafx.scene.control.*;
-import javafx.scene.layout.*;
-import javafx.stage.Stage;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.vinumeris.updatefx.AppDirectory;
-import com.vinumeris.updatefx.Crypto;
-import com.vinumeris.updatefx.UpdateFX;
-import com.vinumeris.updatefx.UpdateSummary;
-import com.vinumeris.updatefx.Updater;
-import org.bouncycastle.math.ec.ECPoint;
-
-// TODO remove it after we have impl. UpdateFX. 
-// Let it here for reference and for easier test setup for the moment.
-public class ExampleApp extends Application {
-    private static final Logger log = LoggerFactory.getLogger(ExampleApp.class);
-    public static int VERSION = 3;
-
-    public static void main(String[] args) throws IOException {
-        // We want to store updates in our app dir so must init that here.
-        AppDirectory.initAppDir("UpdateFX Example App");
-        setupLogging();
-        // re-enter at realMain, but possibly running a newer version of the software i.e. after this point the
-        // rest of this code may be ignored.
-        UpdateFX.bootstrap(ExampleApp.class, AppDirectory.dir(), args);
-    }
-
-    public static void realMain(String[] args) {
-        launch(args);
-    }
-
-    private static java.util.logging.Logger logger;
-
-    private static void setupLogging() throws IOException {
-        logger = java.util.logging.Logger.getLogger("");
-        logger.getHandlers()[0].setFormatter(new BriefLogFormatter());
-        FileHandler handler = new FileHandler(AppDirectory.dir().resolve("log.txt").toString(), true);
-        handler.setFormatter(new BriefLogFormatter());
-        logger.addHandler(handler);
-    }
-
-    @Override
-    public void start(Stage primaryStage) throws Exception {
-        // For some reason the JavaFX launch process results in us losing the thread context class loader: reset it.
-        Thread.currentThread().setContextClassLoader(ExampleApp.class.getClassLoader());
-        // Must be done twice for the times when we come here via realMain.
-        AppDirectory.initAppDir("UpdateFX Example App");
-
-        log.info("Hello World! This is version " + VERSION);
-
-        ProgressIndicator indicator = showGiantProgressWheel(primaryStage);
-
-        List<ECPoint> pubkeys = Crypto.decode("028B41BDDCDCAD97B6AE088FEECA16DC369353B717E13319370C729CB97D677A11",
-                // wallet_1
-                "031E3D80F21A4D10D385A32ABEDC300DACBEDBC839FBA58376FBD5D791D806BA68"); // wallet
-
-        Updater updater = new Updater("http://localhost:8000/", "ExampleApp/" + VERSION, VERSION,
-                AppDirectory.dir(), UpdateFX.findCodePath(ExampleApp.class),
-                pubkeys, 1) {
-            @Override
-            protected void updateProgress(long workDone, long max) {
-                super.updateProgress(workDone, max);
-                // Give UI a chance to show.
-                Uninterruptibles.sleepUninterruptibly(100, TimeUnit.MILLISECONDS);
-            }
-        };
-
-        indicator.progressProperty().bind(updater.progressProperty());
-
-        log.info("Checking for updates!");
-        updater.setOnSucceeded(event -> {
-            try {
-                UpdateSummary summary = updater.get();
-                if (summary.descriptions.size() > 0) {
-                    log.info("One liner: {}", summary.descriptions.get(0).getOneLiner());
-                    log.info("{}", summary.descriptions.get(0).getDescription());
-                }
-                if (summary.highestVersion > VERSION) {
-                    log.info("Restarting to get version " + summary.highestVersion);
-                    if (UpdateFX.getVersionPin(AppDirectory.dir()) == 0)
-                        UpdateFX.restartApp();
-                }
-            } catch (Throwable e) {
-                log.error("oops", e);
-            }
-        });
-        updater.setOnFailed(event -> {
-            log.error("Update error: {}", updater.getException());
-            updater.getException().printStackTrace();
-        });
-
-        indicator.setOnMouseClicked(ev -> UpdateFX.restartApp());
-
-        new Thread(updater, "UpdateFX Thread").start();
-
-        primaryStage.show();
-    }
-
-    private ProgressIndicator showGiantProgressWheel(Stage stage) {
-        ProgressIndicator indicator = new ProgressIndicator();
-        BorderPane borderPane = new BorderPane(indicator);
-        borderPane.setMinWidth(640);
-        borderPane.setMinHeight(480);
-        Button pinButton = new Button();
-        pinButton.setText("Pin to version 1");
-        pinButton.setOnAction(event -> {
-            UpdateFX.pinToVersion(AppDirectory.dir(), 1);
-            UpdateFX.restartApp();
-        });
-        HBox box = new HBox(new Label("Version " + VERSION), pinButton);
-        box.setSpacing(10);
-        box.setAlignment(Pos.CENTER_LEFT);
-        box.setPadding(new Insets(10));
-        borderPane.setTop(box);
-        Scene scene = new Scene(borderPane);
-        stage.setScene(scene);
-        return indicator;
-    }
-}
diff --git a/src/main/java/io/bitsquare/app/gui/MockUpdateProcess.java b/src/main/java/io/bitsquare/app/gui/MockUpdateProcess.java
deleted file mode 100644
index 8314bcb5c3..0000000000
--- a/src/main/java/io/bitsquare/app/gui/MockUpdateProcess.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * This file is part of Bitsquare.
- *
- * Bitsquare is free software: you can redistribute it and/or modify it
- * under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * Bitsquare is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public
- * License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with Bitsquare. If not, see <http://www.gnu.org/licenses/>.
- */
-
-package io.bitsquare.app.gui;
-
-import com.google.inject.Inject;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import org.springframework.core.env.Environment;
-
-public class MockUpdateProcess extends UpdateProcess {
-    private static final Logger log = LoggerFactory.getLogger(MockUpdateProcess.class);
-
-    @Inject
-    public MockUpdateProcess(Environment environment) {
-        super(environment);
-    }
-
-    @Override
-    protected void init(Environment environment) {
-
-       /* timeoutTimer.stop();
-        state.set(State.UPDATE_AVAILABLE);*/
-
-        state.set(State.UP_TO_DATE);
-        timeoutTimer.stop();
-        process.onCompleted();
-
-      /*  state.set(State.FAILURE);
-        errorMessage = "dummy exc.";
-         timeoutTimer.stop();
-        process.onCompleted();*/
-
-    }
-
-    @Override
-    public void restart() {
-        log.debug("restart requested");
-    }
-}
diff --git a/updatefx/updatefx-app-1.2.jar b/updatefx/updatefx-app-1.2.jar
new file mode 100644
index 0000000000..7a07da2fac
Binary files /dev/null and b/updatefx/updatefx-app-1.2.jar differ