diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 733463234da38e6f5b98dd8dd59d5d3500d5cf83..cbcbbb20ec92582dc3412c94f6d874683279511b 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -7,8 +7,9 @@ cache:
 test:
   script:
   - apt-get update -yqqq
-  - apt-get install -y nodejs
+  - apt-get install -y nodejs bower
   - bundle install --path vendor
+  - bower install
   - bundle exec middleman build
   except:
     - master
@@ -16,8 +17,9 @@ test:
 pages:
   script:
   - apt-get update -yqqq
-  - apt-get install -y nodejs
+  - apt-get install -y nodejs bower
   - bundle install --path vendor
+  - bower install
   - bundle exec middleman build
   artifacts:
     paths:
diff --git a/Gemfile b/Gemfile
index 0006fa4768286fe44935546c18288b282d464b7f..42a690c35d5cd5be784e896787b30c5042514b7e 100644
--- a/Gemfile
+++ b/Gemfile
@@ -6,12 +6,12 @@ source 'https://rubygems.org'
 gem 'wdm', '~> 0.1.1', platforms: [:mswin, :mingw]
 
 # Windows does not come with time zone data
-gem 'tzinfo-data', platforms: [:mswin, :mingw, :jruby]
+#gem 'tzinfo-data', platforms: [:mswin, :mingw, :jruby]
 
 # Middleman Gems
-gem 'middleman-livereload'
-gem 'middleman', '~> 4.0'
-gem 'middleman-sprockets', '~> 4.0.0'
+#gem 'middleman-livereload'
+gem 'middleman', '~> 4.3'
+gem 'middleman-sprockets', '~> 4.1'
 gem 'middleman-syntax', '~> 3.0.0'
 gem 'middleman-navtree'
 
diff --git a/Gemfile.lock b/Gemfile.lock
index 512160ee92d2f2950a7d689d8217996e7839a4b4..3a8f106461f5187cdc5d56bb9317f959f82f800f 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -1,60 +1,57 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    activesupport (5.0.6)
+    activesupport (5.0.7.2)
       concurrent-ruby (~> 1.0, >= 1.0.2)
-      i18n (~> 0.7)
+      i18n (>= 0.7, < 2)
       minitest (~> 5.1)
       tzinfo (~> 1.1)
-    addressable (2.5.2)
+    addressable (2.6.0)
       public_suffix (>= 2.0.2, < 4.0)
-    backports (3.10.3)
+    backports (3.15.0)
     coffee-script (2.4.1)
       coffee-script-source
       execjs
     coffee-script-source (1.12.2)
-    compass-import-once (1.0.5)
-      sass (>= 3.2, < 3.5)
-    concurrent-ruby (1.0.5)
+    concurrent-ruby (1.1.5)
     contracts (0.13.0)
-    dotenv (2.2.1)
+    dotenv (2.7.5)
     em-websocket (0.5.1)
       eventmachine (>= 0.12.9)
       http_parser.rb (~> 0.6.0)
     erubis (2.7.0)
-    eventmachine (1.2.5)
+    eventmachine (1.2.7)
     execjs (2.7.0)
     fast_blank (1.0.0)
-    fastimage (2.1.0)
-    ffi (1.9.18)
-    haml (5.0.4)
+    fastimage (2.1.5)
+    ffi (1.11.1)
+    haml (5.1.2)
       temple (>= 0.8.0)
       tilt
     hamster (3.0.0)
       concurrent-ruby (~> 1.0)
-    hashie (3.5.6)
+    hashie (3.6.0)
     http_parser.rb (0.6.0)
-    i18n (0.7.0)
-    kramdown (1.15.0)
+    i18n (0.9.5)
+      concurrent-ruby (~> 1.0)
+    kramdown (1.17.0)
     listen (3.0.8)
       rb-fsevent (~> 0.9, >= 0.9.4)
       rb-inotify (~> 0.9, >= 0.9.7)
     memoist (0.16.0)
-    middleman (4.2.1)
+    middleman (4.3.4)
       coffee-script (~> 2.2)
-      compass-import-once (= 1.0.5)
       haml (>= 4.0.5)
       kramdown (~> 1.2)
-      middleman-cli (= 4.2.1)
-      middleman-core (= 4.2.1)
-      sass (>= 3.4.0, < 4.0)
-    middleman-cli (4.2.1)
+      middleman-cli (= 4.3.4)
+      middleman-core (= 4.3.4)
+    middleman-cli (4.3.4)
       thor (>= 0.17.0, < 2.0)
-    middleman-core (4.2.1)
+    middleman-core (4.3.4)
       activesupport (>= 4.2, < 5.1)
       addressable (~> 2.3)
       backports (~> 3.6)
-      bundler (~> 1.1)
+      bundler
       contracts (~> 0.13.0)
       dotenv
       erubis
@@ -63,15 +60,15 @@ GEM
       fastimage (~> 2.0)
       hamster (~> 3.0)
       hashie (~> 3.4)
-      i18n (~> 0.7.0)
+      i18n (~> 0.9.0)
       listen (~> 3.0.0)
       memoist (~> 0.14)
       padrino-helpers (~> 0.13.0)
       parallel
       rack (>= 1.4.5, < 3)
-      sass (>= 3.4)
+      sassc (~> 2.0)
       servolux
-      tilt (~> 2.0)
+      tilt (~> 2.0.9)
       uglifier (~> 3.0)
     middleman-livereload (3.4.6)
       em-websocket (~> 0.5.1)
@@ -80,40 +77,43 @@ GEM
     middleman-navtree (0.1.11)
       middleman-core (>= 3.3)
       titleize (~> 1.3)
-    middleman-sprockets (4.0.0)
+    middleman-sprockets (4.1.1)
       middleman-core (~> 4.0)
       sprockets (>= 3.0)
     middleman-syntax (3.0.0)
       middleman-core (>= 3.2)
       rouge (~> 2.0)
-    minitest (5.10.3)
+    minitest (5.11.3)
     padrino-helpers (0.13.3.4)
       i18n (~> 0.6, >= 0.6.7)
       padrino-support (= 0.13.3.4)
       tilt (>= 1.4.1, < 3)
     padrino-support (0.13.3.4)
       activesupport (>= 3.1)
-    parallel (1.12.0)
-    public_suffix (3.0.0)
-    rack (2.0.3)
-    rack-livereload (0.3.16)
+    parallel (1.17.0)
+    public_suffix (3.1.1)
+    rack (2.0.7)
+    rack-livereload (0.3.17)
       rack
-    rb-fsevent (0.10.2)
-    rb-inotify (0.9.10)
-      ffi (>= 0.5.0, < 2)
+    rake (12.3.3)
+    rb-fsevent (0.10.3)
+    rb-inotify (0.10.0)
+      ffi (~> 1.0)
     redcarpet (3.4.0)
     rouge (2.2.1)
-    sass (3.4.25)
+    sassc (2.0.1)
+      ffi (~> 1.9)
+      rake
     servolux (0.13.0)
-    sprockets (3.7.1)
+    sprockets (3.7.2)
       concurrent-ruby (~> 1.0)
       rack (> 1, < 3)
-    temple (0.8.0)
-    thor (0.20.0)
+    temple (0.8.1)
+    thor (0.20.3)
     thread_safe (0.3.6)
-    tilt (2.0.8)
+    tilt (2.0.9)
     titleize (1.4.1)
-    tzinfo (1.2.3)
+    tzinfo (1.2.5)
       thread_safe (~> 0.1)
     uglifier (3.2.0)
       execjs (>= 0.3.0, < 3)
@@ -122,14 +122,13 @@ PLATFORMS
   ruby
 
 DEPENDENCIES
-  middleman (~> 4.0)
+  middleman (~> 4.3)
   middleman-livereload
   middleman-navtree
-  middleman-sprockets (~> 4.0.0)
+  middleman-sprockets (~> 4.1)
   middleman-syntax (~> 3.0.0)
   redcarpet (~> 3.4.0)
-  tzinfo-data
   wdm (~> 0.1.1)
 
 BUNDLED WITH
-   1.15.4
+   1.15.3
diff --git a/README.md b/README.md
index 917a9205980709e8532deb8a279deb95d62936e0..511cfd433c168e0eee4b3fa558b193db64e467cd 100644
--- a/README.md
+++ b/README.md
@@ -4,3 +4,15 @@ bower install
 bundle exec middleman serve
 bundle exec middleman build
 ```
+
+on Mac OSX The following is needed to properly execute the first line to get ffi t install (might need to repeat again without env variables after ffi installs if other packages fail.)
+
+```
+LDFLAGS="-L/usr/local/opt/libffi/lib" PKG_CONFIG_PATH="/usr/local/opt/libffi/lib/pkgconfig" bundle install --path vendor
+```
+
+Alternatively compile it using a docker container:
+
+```
+docker run -v "$PWD":/app nielsvdoorn/middleman bundle install && bower install && bundle exec middleman build
+```