diff --git a/README.md b/README.md
index 105d5be..527034c 100644
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
 
 ## Install
 
-1. Check a clone of this repo: `git clone http://github.com/revans/bash-it.git ~/.bash_it`
+1. Check a clone of this repo: `git clone https://github.com/revans/bash-it.git ~/.bash_it`
 2. Run `~/.bash_it/install.sh` (it automatically backs up your `~/.bash_profile`)
 3. Edit your `~/.bash_profile` file in order to customize bash-it.
 
diff --git a/aliases/available/gitsvn.aliases.bash b/aliases/available/gitsvn.aliases.bash
new file mode 100644
index 0000000..feb608b
--- /dev/null
+++ b/aliases/available/gitsvn.aliases.bash
@@ -0,0 +1,7 @@
+cite 'about-alias'
+about-alias 'common git-svn abbreviations'
+
+# Aliases
+alias gsr='git svn rebase'
+alias gsc='git svn dcommit'
+alias gsi='git svn info'
diff --git a/plugins/available/chruby-auto.bash b/plugins/available/chruby-auto.bash
new file mode 100644
index 0000000..49efc50
--- /dev/null
+++ b/plugins/available/chruby-auto.bash
@@ -0,0 +1,5 @@
+cite about-plugin
+about-plugin 'load chruby + auto-switching (from /usr/local/share/chruby)'
+
+source /usr/local/share/chruby/chruby.sh
+source /usr/local/share/chruby/auto.sh
diff --git a/plugins/available/chruby.bash b/plugins/available/chruby.bash
new file mode 100644
index 0000000..c679347
--- /dev/null
+++ b/plugins/available/chruby.bash
@@ -0,0 +1,4 @@
+cite about-plugin
+about-plugin 'load chruby                  (from /usr/local/share/chruby)'
+
+source /usr/local/share/chruby/chruby.sh
diff --git a/themes/base.theme.bash b/themes/base.theme.bash
index 5a5edd3..001ca65 100644
--- a/themes/base.theme.bash
+++ b/themes/base.theme.bash
@@ -132,8 +132,18 @@
   fi
 }
 
+function chruby_version_prompt {
+  if declare -f -F chruby &> /dev/null; then
+    if declare -f -F chruby_auto &> /dev/null; then
+      chruby_auto
+    fi
+    chruby=$(ruby --version | awk '{print $1, $2;}') || return
+    echo -e "$CHRUBY_THEME_PROMPT_PREFIX$chruby$CHRUBY_THEME_PROMPT_SUFFIX"
+  fi
+}
+
 function ruby_version_prompt {
-  echo -e "$(rbfu_version_prompt)$(rbenv_version_prompt)$(rvm_version_prompt)"
+  echo -e "$(rbfu_version_prompt)$(rbenv_version_prompt)$(rvm_version_prompt)$(chruby_version_prompt)"
 }
 
 function virtualenv_prompt {
diff --git a/themes/nwinkler/nwinkler.theme.bash b/themes/nwinkler/nwinkler.theme.bash
new file mode 100644
index 0000000..b8bcc22
--- /dev/null
+++ b/themes/nwinkler/nwinkler.theme.bash
@@ -0,0 +1,47 @@
+#!/bin/bash
+
+# Two line prompt showing the following information:
+# (time) SCM [username@hostname] pwd (SCM branch SCM status) 
+# → 
+#
+# Example:
+# (14:00:26) ± [foo@bar] ~/.bash_it (master ✓) 
+# → 
+#
+# The arrow on the second line is showing the exit status of the last command:
+# * Green: 0 exit status
+# * Red: non-zero exit status
+#
+# The exit code functionality currently doesn't work if you are using the 'fasd' plugin,
+# since 'fasd' is messing with the $PROMPT_COMMAND
+
+
+PROMPT_END_CLEAN="${green}→${reset_color}"
+PROMPT_END_DIRTY="${red}→${reset_color}"
+
+function prompt_end() {
+  echo -e "$PROMPT_END"
+}
+
+prompt_setter() {
+  local exit_status=$?
+  if [[ $exit_status -eq 0 ]]; then PROMPT_END=$PROMPT_END_CLEAN
+    else PROMPT_END=$PROMPT_END_DIRTY
+  fi
+  # Save history
+  history -a
+  history -c
+  history -r
+  PS1="(\t) $(scm_char) [${blue}\u${reset_color}@${green}\H${reset_color}] ${yellow}\w${reset_color}$(scm_prompt_info) ${reset_color}\n$(prompt_end) "
+  PS2='> '
+  PS4='+ '
+}
+
+PROMPT_COMMAND=prompt_setter
+
+SCM_THEME_PROMPT_DIRTY=" ${bold_red}✗${normal}"
+SCM_THEME_PROMPT_CLEAN=" ${bold_green}✓${normal}"
+SCM_THEME_PROMPT_PREFIX=" ("
+SCM_THEME_PROMPT_SUFFIX=")"
+RVM_THEME_PROMPT_PREFIX=" ("
+RVM_THEME_PROMPT_SUFFIX=")"
