diff --git a/bash_it.sh b/bash_it.sh
index fef8584..f0c850c 100644
--- a/bash_it.sh
+++ b/bash_it.sh
@@ -69,6 +69,5 @@
   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 "  ref-help 					  Get help for the ref plugin."
   echo
 }
diff --git a/plugins/ref.plugin.bash b/plugins/ref.plugin.bash
deleted file mode 100644
index 1c4deb0..0000000
--- a/plugins/ref.plugin.bash
+++ /dev/null
@@ -1,109 +0,0 @@
-#####################################################################################################################################################################
-# README 																																							
-# ------ 																																							
-# 																																									
-# ref is a plugin for storing HTML formatted references, mainly suited for programming. 																			
-# Your $REF_DIR variable is the directory for storing these references in. If it does not exist, it will be created automatically. 									
-# Here is an example of what my $REF_DIR looks like, because this will be of use when I explain how your $REF_DIR has to be structured: 							
-# 																																									
-# ~/.ref/ 																																							
-#   ruby/ 																																							
-#       general/ 																																					
-#  			index.html 																																				
-# 	bash/ 																																							
-# 		array/ 																																						
-# 			index.html 																																				
-# 		select/ 																																					
-# 			index.html 																																				
-# 																																									
-# This is what the basic structure of your $REF_DIR should look like: Subdirectories for each subject, and then another set of subdirectories for the part of the   
-# subject you want to reference. And in the second subdirectory, an index.html file. 																				
-# 
-# To use ref, you do the ref command followed by the sugject and the sub-subject as arguments. For instance:
-# 
-# ref bash array
-# 
-# Would open the bash/array/index.html file.
-# 
-# To list your references, you would do the ref ls command, optionally followed by a subject. For instance:
-# 
-# ref ls
-# 
-# Would give me:
-# 
-# ruby bash
-# 
-# And:
-# 
-# ref ls bash
-# 
-# would output:
-# 
-# array
-# select
-#####################################################################################################################################################################
-
-ref() {
-	if [ ! -d "$REF_DIR" ]
-	then
-		mkdir -p "$REF_DIR"
-	fi
-
-	REF_DIR=${REF_DIR%/}
-
-	builtin cd $REF_DIR
-
-	if [ "$1" = 'ls' ]
-	then
-		if [ "$2" = '' ]
-		then
-			ls -G
-			builtin cd - > /dev/null
-			return
-		else
-			ls -G
-			builtin cd - > /dev/null
-			return
-		fi
-	elif [ "$1" = 'new' ]
-	then
-		mkdir -p "$2"/"$3"
-		echo You can now put the index.html file into "$REF_DIR"/"$2"/"$3"
-		builtin cd - > /dev/null
-		return
-	fi
-
-	DIR="${1}/${2}"
-
-	builtin cd "$REF_DIR"/"$DIR"
-
-	if [ $(uname) = "Darwin" ]
-	then
-		open index.html
-	elif [ $(uname) = "Linux" ]
-	then
-		gnome-open index.html
-	fi
-}
-
-ref-help() {
-	echo
-	echo "Help for the ref plugin"
-	echo "-----------------------"
-	echo
-	echo "Setting up: "
-	echo
-	echo "First, set the REF_DIR variable in you ~/.bash_profile to the directory you want to store your references in."
-	echo "You don't even have to create this directory if you don't want to, ref will make it for you if it doesn't exist."
-	echo
-	echo "Then, you can start adding some refs. You can do so with this command: "
-	echo "	ref new topic subtopic"
-	echo "Where topic is the general topic, such as ruby. And subtopic is a more exact topic, like array."
-	echo "This will create a directory for the topic, and a subdirectory for the subtopic. You can then move a file of your desired format into the subtopic's directory."
-	echo
-	echo "To access your ref, you would do the following command: "
-	echo "	ref topic subtopic"
-	echo "Where topic and subtopic are the same as before, but ref will open the file under your topic/subtopic directory. Unless it is a full website."
-	echo
-	echo "You can also download full websites as a ref, as long as it has an index.html file, it will work."
-}
