diff --git a/README.md b/README.md
index 4242bd9..742daf1 100644
--- a/README.md
+++ b/README.md
@@ -20,6 +20,7 @@
 	aliases-help
 	rails-help
 	git-help
+    plugins-help
 
 ## Your Custom scripts, aliases, and functions
 
diff --git a/aliases/jekyll.aliases.bash b/aliases/jekyll.aliases.bash
index c447894..a5078e3 100644
--- a/aliases/jekyll.aliases.bash
+++ b/aliases/jekyll.aliases.bash
@@ -1,10 +1,8 @@
 # Open the root of your site in your vim or cd to it
 
-if [ $EDITOR = "vim" ]
-then
-	alias newentry="cd $JEKYLL_LOCAL_ROOT && $EDITOR ."
-else
-	alias newentry="cd $JEKYLL_LOCAL_ROOT"
+if [[ $EDITOR = "vim" ]]
+then alias newentry="cd $JEKYLL_LOCAL_ROOT && $EDITOR ."
+else alias newentry="cd $JEKYLL_LOCAL_ROOT"
 fi
 
 # Open the _posts/ directory for making a new blog post (seperate from above alias because not everyone uses jekyll for a blog)
diff --git a/bash_it.sh b/bash_it.sh
index 5736f89..2364d04 100644
--- a/bash_it.sh
+++ b/bash_it.sh
@@ -71,5 +71,6 @@
   echo "  git-help                    This will list out all the aliases you can use with git."
   echo "  todo-help                   This will list out all the aliases you can use with todo.txt-cli"
   echo "  aliases-help                Generic list of aliases."
+  echo "  plugins-help                This will list out all the plugins and functions you can use with bash-it"
   echo
 }
diff --git a/plugins/base.plugin.bash b/plugins/base.plugin.bash
index d19b149..9eceaf9 100644
--- a/plugins/base.plugin.bash
+++ b/plugins/base.plugin.bash
@@ -30,6 +30,11 @@
   ri -T "${1}" | open -f -a $PREVIEW
 }
 
+banish-cookies() {
+	rm -r ~/.macromedia ~/.adobe
+	ln -s /dev/null ~/.adobe
+	ln -s /dev/null ~/.macromedia
+}
 
 # disk usage per directory
 # in Mac OS X and Linux
@@ -50,3 +55,32 @@
         fi
     fi
 }
+
+# One thing todo
+function t() {
+	 if [[ "$*" == "" ]] ; then
+		 cat ~/.t
+	 else
+		 echo "$*" > ~/.t
+	 fi
+}
+
+# List all plugins and functions defined by bash-it
+function plugins-help() {
+    
+    echo "bash-it Plugins Help-Message"
+    echo 
+
+    set | grep "()" \
+    | sed -e "/^_/d" | grep -v "BASH_ARGC=()" \
+    | sed -e "/^\s/d" | grep -v "BASH_LINENO=()" \
+    | grep -v "BASH_ARGV=()" \
+    | grep -v "BASH_SOURCE=()" \
+    | grep -v "DIRSTACK=()" \
+    | grep -v "GROUPS=()" \
+    | grep -v "BASH_CMDS=()" \
+    | grep -v "BASH_ALIASES=()" \
+    | grep -v "COMPREPLY=()" | sed -e "s/()//"
+}
+
+
diff --git a/plugins/browser.plugin.bash b/plugins/browser.plugin.bash
new file mode 100644
index 0000000..6de184c
--- /dev/null
+++ b/plugins/browser.plugin.bash
@@ -0,0 +1,29 @@
+# based on https://gist.github.com/318247
+
+# Usage: browser
+# pipe html to a browser
+# e.g.
+# $ echo "<h1>hi mom!</h1>" | browser
+# $ ron -5 man/rip.5.ron | browser
+
+function browser() {
+    if [ -t 0 ]; then
+        if [ -n "$1" ]; then
+            open $1
+        else
+            cat <<usage
+Usage: browser
+pipe html to a browser
+
+$ echo '<h1>hi mom!</h1>' | browser
+$ ron -5 man/rip.5.ron | browser
+usage
+
+    fi
+
+    else
+        f="/tmp/browser.$RANDOM.html"
+        cat /dev/stdin > $f
+        open $f 
+    fi
+}
diff --git a/plugins/osx.plugin.bash b/plugins/osx.plugin.bash
index c366b3f..e6271bd 100644
--- a/plugins/osx.plugin.bash
+++ b/plugins/osx.plugin.bash
@@ -11,3 +11,27 @@
     end tell
 EOF
 }
+
+# this one switches your os x dock between 2d and 3d
+# thanks to savier.zwetschge.org
+function dock-switch() {
+
+    if [ $(uname) = "Darwin" ]; then
+        
+        if [ $1 = 3d ] ; then
+            defaults write com.apple.dock no-glass -boolean NO
+            killall Dock
+
+        elif [ $1 = 2d ] ; then
+            defaults write com.apple.dock no-glass -boolean YES
+            killall Dock
+
+        else
+            echo "usage:"
+            echo "dock-switch 2d" 
+            echo "dock-switch 3d."
+        fi
+    else
+        echo "sorry. you're currently not using os x"
+    fi
+}
diff --git a/themes/zitron/zitron.theme.bash b/themes/zitron/zitron.theme.bash
index c072686..980b19a 100644
--- a/themes/zitron/zitron.theme.bash
+++ b/themes/zitron/zitron.theme.bash
@@ -17,4 +17,4 @@
 ## ls colors
 # thanks a lot to http://geoff.greer.fm/lscolors/
 export LSCOLORS="Gxfxcxdxbxegedabagacad"
-export LS_COLORS="no=00:fi=00:di=01;33:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.svgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;34:*.svg=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:"
+export LS_COLORS="no=00:fi=00:di=01;97:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.svgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;34:*.svg=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:"
