diff --git a/kibana/files/kibana.init b/kibana/files/kibana.init
deleted file mode 100755
index d19ba7c..0000000
--- a/kibana/files/kibana.init
+++ /dev/null
@@ -1,156 +0,0 @@
-#!/bin/sh
-# Init script for kibana
-# Maintained by 
-# Generated by pleaserun.
-# Implemented based on LSB Core 3.1:
-#   * Sections: 20.2, 20.3
-#
-### BEGIN INIT INFO
-# Provides:          kibana
-# Required-Start:    $remote_fs $syslog
-# Required-Stop:     $remote_fs $syslog
-# Default-Start:     2 3 4 5
-# Default-Stop:      0 1 6
-# Short-Description: 
-# Description:       no description given
-### END INIT INFO
-
-PATH=/sbin:/usr/sbin:/bin:/usr/bin
-export PATH
-
-name=kibana
-program=/opt/kibana/bin/kibana
-args=''
-pidfile="/var/run/$name.pid"
-
-[ -r /etc/default/$name ] && . /etc/default/$name
-[ -r /etc/sysconfig/$name ] && . /etc/sysconfig/$name
-
-trace() {
-  logger -t "/etc/init.d/kibana" "$@"
-}
-
-emit() {
-  trace "$@"
-  echo "$@"
-}
-
-start() {
-
-  # Ensure the log directory is setup correctly.
-  [ ! -d "/var/log/kibana/" ] && mkdir "/var/log/kibana/"
-  chown "$user":"$group" "/var/log/kibana/"
-  chmod 755 "/var/log/kibana/"
-
-
-  # Setup any environmental stuff beforehand
-  
-
-  # Run the program!
-  
-  chroot --userspec "$user":"$group" "$chroot" sh -c "
-    
-    cd \"$chdir\"
-    exec \"$program\" $args
-  " >> /var/log/kibana/kibana.stdout 2>> /var/log/kibana/kibana.stderr &
-
-  # Generate the pidfile from here. If we instead made the forked process
-  # generate it there will be a race condition between the pidfile writing
-  # and a process possibly asking for status.
-  echo $! > $pidfile
-
-  emit "$name started"
-  return 0
-}
-
-stop() {
-  # Try a few times to kill TERM the program
-  if status ; then
-    pid=$(cat "$pidfile")
-    trace "Killing $name (pid $pid) with SIGTERM"
-    kill -TERM $pid
-    # Wait for it to exit.
-    for i in 1 2 3 4 5 ; do
-      trace "Waiting $name (pid $pid) to die..."
-      status || break
-      sleep 1
-    done
-    if status ; then
-      emit "$name stop failed; still running."
-    else
-      emit "$name stopped."
-    fi
-  fi
-}
-
-status() {
-  if [ -f "$pidfile" ] ; then
-    pid=$(cat "$pidfile")
-    if ps -p $pid > /dev/null 2> /dev/null ; then
-      # process by this pid is running.
-      # It may not be our pid, but that's what you get with just pidfiles.
-      # TODO(sissel): Check if this process seems to be the same as the one we
-      # expect. It'd be nice to use flock here, but flock uses fork, not exec,
-      # so it makes it quite awkward to use in this case.
-      return 0
-    else
-      return 2 # program is dead but pid file exists
-    fi
-  else
-    return 3 # program is not running
-  fi
-}
-
-force_stop() {
-  if status ; then
-    stop
-    status && kill -KILL $(cat "$pidfile")
-  fi
-}
-
-
-case "$1" in
-  force-start|start|stop|force-stop|restart)
-    trace "Attempting '$1' on kibana"
-    ;;
-esac
-
-case "$1" in
-  force-start)
-    PRESTART=no
-    exec "$0" start
-    ;;
-  start)
-    status
-    code=$?
-    if [ $code -eq 0 ]; then
-      emit "$name is already running"
-      exit $code
-    else
-      start
-      exit $?
-    fi
-    ;;
-  stop) stop ;;
-  force-stop) force_stop ;;
-  status) 
-    status
-    code=$?
-    if [ $code -eq 0 ] ; then
-      emit "$name is running"
-    else
-      emit "$name is not running"
-    fi
-    exit $code
-    ;;
-  restart) 
-    
-    stop && start 
-    ;;
-  *)
-    echo "Usage: $SCRIPTNAME {start|force-start|stop|force-start|force-stop|status|restart}" >&2
-    exit 3
-  ;;
-esac
-
-exit $?
diff --git a/kibana/init.sls b/kibana/init.sls
index 45e2ea3..2003aa5 100644
--- a/kibana/init.sls
+++ b/kibana/init.sls
@@ -1,7 +1,5 @@
 
-{%- if pillar.kibana is defined %}
 {%- if pillar.kibana.server is defined %}
 include:
 - kibana.server
 {%- endif %}
-{%- endif %}
diff --git a/kibana/map.jinja b/kibana/map.jinja
index 1a220ee..a6736e3 100644
--- a/kibana/map.jinja
+++ b/kibana/map.jinja
@@ -1,8 +1,7 @@
 
 {% set server = salt['grains.filter_by']({
     'Debian': {
-        'pkgs': ['kibana'],
+        'pkgname': 'kibana',
         'service': 'kibana',
-        'dir': '/opt/kibana'
     },
 }, merge=salt['pillar.get']('kibana:server')) %}
diff --git a/kibana/meta/sphinx.yml b/kibana/meta/sphinx.yml
index 3aa536e..58af7b3 100644
--- a/kibana/meta/sphinx.yml
+++ b/kibana/meta/sphinx.yml
@@ -1,6 +1,6 @@
 doc:
   name: Kibana
-  description: Kibana is a browser based analytics and search interface to Logstash and other timestamped data sets stored in ElasticSearch.
+  description: Kibana is an open source (Apache Licensed), browser based analytics and search interface to Logstash and other timestamped data sets stored in ElasticSearch.
   role:
   {%- if pillar.kibana.server is defined %}
     server:
diff --git a/kibana/server.sls b/kibana/server.sls
index d98cc9d..8122fdc 100644
--- a/kibana/server.sls
+++ b/kibana/server.sls
@@ -1,45 +1,35 @@
 {%- from "kibana/map.jinja" import server with context %}
 {%- if server.enabled %}
 
-kibana_user:
-  user.present:
-  - name: kibana
-  - system: True
-  - home: {{ server.dir }}
-  - require:
-    - file: {{ server.dir }}
+{%- if server.addrepo is defined and grains['os_family'] == 'Debian' %}
 
-kibana_archive:
-  archive.extracted:
-  - name: {{ server.dir }}
-  - source: https://download.elastic.co/kibana/kibana/kibana-4.3.0-linux-x64.tar.gz
-  - archive_format: tar.gz
-  - if_missing: /opt/kibana/src
-  - require:
-    - user: kibana_user
+kibana_repo:
+  pkgrepo.managed:
+    - humanname: Kibana Repository
+    - name: deb http://packages.elastic.co/kibana/4.1/debian stable main
+    - dist: stable
+    - file: /etc/apt/sources.list.d/kibana.list
+    - key_url: https://packages.elastic.co/GPG-KEY-elasticsearch
 
-/etc/init.d/kibana:
-  file.managed:
-  - source: salt://kibana/files/kibana.init
-  - user: kibana
-  - group: kibana
-  - mode: 700
-  - template: jinja
-  - require:
-    - archive: kibana_archive
-  - watch_in:
-    - service: kibana_service
+{%- endif %}
 
-/opt/kibana/src/config/kibana.yml:
-  file.managed:
-  - source: salt://kibana/files/kibana.yml
-  - template: jinja
-  - watch_in:
-    - service: kibana_service
+kibana_package:
+  pkg.installed:
+  - name: {{ server.pkgname }}
 
 kibana_service:
   service.running:
   - enable: true
   - name: {{ server.service }}
+  - watch:
+    - file: /opt/kibana/config/kibana.yml
 
-{%- endif %}
\ No newline at end of file
+/opt/kibana/config/kibana.yml:
+  file.managed:
+  - source: salt://kibana/files/kibana.yml
+  - template: jinja
+  - require:
+    - pkg: kibana_package
+
+{%- endif %}
+
