Made a lot of changes: no more functions directory. All aliases have been moved to the new alias directory. Plugins are now for functions only. Updated the README to reflect the changes and add a contributor's list.
diff --git a/aliases/emacs.aliases.bash b/aliases/emacs.aliases.bash
new file mode 100644
index 0000000..792d737
--- /dev/null
+++ b/aliases/emacs.aliases.bash
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+alias em="emacs"
\ No newline at end of file
diff --git a/aliases/general.aliases.bash b/aliases/general.aliases.bash
new file mode 100644
index 0000000..76e1c1e
--- /dev/null
+++ b/aliases/general.aliases.bash
@@ -0,0 +1,45 @@
+#!/bin/bash
+
+# List directory contents
+alias sl=ls
+alias ls='ls -G'        # Compact view, show colors
+alias la='ls -AF'       # Compact view, show hidden
+alias ll='ls -al'
+alias l='ls -a'
+
+alias c='clear'
+alias k='clear'
+
+alias ..='cd ..'        # Go up one directory
+alias ...='cd ../..'    # Go up two directories
+alias -- -="cd -"       # Go back
+
+# Shell History
+alias h='history'
+
+# Tree
+alias tree="find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'"
+
+# Directory
+alias	md='mkdir -p'
+alias	rd=rmdir
+alias d='dirs -v'
+
+function aliases-help() {
+  echo "Generic Alias Usage"
+  echo
+  echo "  sl    = ls"
+  echo "  ls    = ls -G"
+  echo "  la    = ls -AF"
+  echo "  ll    = ls -al"
+  echo "  l     = ls -a"
+  echo "  c/k   = clear"
+  echo "  ..    = cd .."
+  echo "  ...   = cd ../.."
+  echo "  -     = cd -"
+  echo "  h     = history"
+  echo "  md    = mkdir -p"
+  echo "  rd    = rmdir"
+  echo "  d     = dirs -v"
+  echo 
+}
\ No newline at end of file
diff --git a/aliases/git.aliases.bash b/aliases/git.aliases.bash
new file mode 100644
index 0000000..148d490
--- /dev/null
+++ b/aliases/git.aliases.bash
@@ -0,0 +1,54 @@
+#!/bin/bash
+
+# Aliases
+alias g='git'
+alias get='git'
+alias gst='git status'
+alias gs='git status'
+alias gl='git pull'
+alias gup='git fetch && git rebase'
+alias gp='git push'
+alias gdv='git diff -w "$@" | vim -R -'
+alias gc='git commit -v'
+alias gca='git commit -v -a'
+alias gb='git branch'
+alias gba='git branch -a'
+alias gcount='git shortlog -sn'
+alias gcp='git cherry-pick'
+alias gco='git checkout'
+alias gexport='git archive --format zip --output'
+
+case $OSTYPE in
+  linux*)
+    alias gd='git diff | vim -R -'
+    ;;
+  darwin*)
+    alias gd='git diff | mate'
+    ;;
+  darwin*)
+    alias gd='git diff'
+    ;;
+esac
+
+
+
+function git-help() {
+  echo "Git Custom Aliases Usage"
+  echo 
+  echo "  g       = git"
+  echo "  gst/gs  = git status"
+  echo "  gl      = git pull"
+  echo "  gup     = git fetch && git rebase"
+  echo "  gp      = git push"
+  echo "  gd      = git diff | mate"
+  echo "  gdv     = git diff -w \"$@\" | vim -R -"
+  echo "  gc      = git commit -v"
+  echo "  gca     = git commit -v -a"
+  echo "  gb      = git branch"
+  echo "  gba     = git branch -a"
+  echo "  gcount  = git shortlog -sn"
+  echo "  gcp     = git cherry-pick"
+  echo "  gco     = git checkout"
+  echo "  gexport = git git archive --format zip --output"
+  echo 
+}
\ No newline at end of file
diff --git a/aliases/heroku.aliases.bash b/aliases/heroku.aliases.bash
new file mode 100644
index 0000000..a393754
--- /dev/null
+++ b/aliases/heroku.aliases.bash
@@ -0,0 +1,56 @@
+#!/bin/bash
+
+# heroku
+alias h='heroku'
+alias hl='heroku list'
+alias hi='heroku info'
+alias ho='heroku open'
+
+# dynos and workers
+alias hd='heroku dynos'
+alias hw='heroku workers'
+
+# rake console
+alias hr='heroku rake'
+alias hcon='heroku console'
+
+# new and restart
+alias hnew='heroku create'
+alias hrestart='heroku restart'
+
+# logs
+alias hlog='heroku logs'
+alias hlogs='heroku logs'
+
+# maint
+alias hon='heroku maintenance:on'
+alias hoff='heroku maintenance:off'
+
+# heroku configs
+alias hc='heroku config'
+alias hca='heroku config:add'
+alias hcr='heroku config:remove'
+alias hcc='heroku config:clear'
+
+function heroku-help() {
+  echo "Heroku Aliases Usage"
+  echo
+  echo "  h           = heroku"
+  echo "  hl          = heroku list"
+  echo "  hi          = heroku info"
+  echo "  ho          = heroku open"
+  echo "  hd          = heroku dynos"
+  echo "  hw          = heroku workers"
+  echo "  hr          = heroku rake"
+  echo "  hcon        = heroku console"
+  echo "  hnew        = heroku create"
+  echo "  hrestart    = heroku restart"
+  echo "  hlog        = heroku logs"
+  echo "  hon         = heroku maintenance:on"
+  echo "  hoff        = heroku maintenance:off"
+  echo "  hc          = heroku config"
+  echo "  hca         = heroku config:add"
+  echo "  hcr         = heroku config:remove"
+  echo "  hcc         = heroku config:clear"
+  echo
+}
diff --git a/aliases/osx.aliases.bash b/aliases/osx.aliases.bash
new file mode 100644
index 0000000..8d6b2d8
--- /dev/null
+++ b/aliases/osx.aliases.bash
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+# Desktop Programs
+alias fireworks="open -a '/Applications/Adobe Fireworks CS3/Adobe Fireworks CS3.app'"
+alias photoshop="open -a '/Applications/Adobe Photoshop CS3/Adobe Photoshop.app'"
+alias preview="open -a '$PREVIEW'"
+alias xcode="open -a '/Developer/Applications/Xcode.app'"
+alias filemerge="open -a '/Developer/Applications/Utilities/FileMerge.app'"
+alias safari="open -a safari"
+alias firefox="open -a firefox"
+alias dashcode="open -a dashcode"
+alias f='open -a Finder '
+
+if [ -s /usr/bin/firefox ] ; then
+  unalias firefox
+fi
+
diff --git a/aliases/rails.aliases.bash b/aliases/rails.aliases.bash
new file mode 100644
index 0000000..d4415f6
--- /dev/null
+++ b/aliases/rails.aliases.bash
@@ -0,0 +1,41 @@
+#!/bin/bash
+
+# Rails Commands
+alias r='rails'
+alias rg='rails g'
+alias rs='rails s'
+alias rc='rails c'
+alias rn='rails new'
+alias rd='rails dbconsole'
+alias rp='rails plugin'
+alias ra='rails application'
+alias rd='rails destroy'
+
+alias ss='script/server'
+alias ts="thin start"     # thin server
+alias sc='script/console'
+alias restartapp='touch tmp/restart.txt'
+alias restart='touch tmp/restart.txt'  # restart passenger
+alias devlog='tail -f log/development.log'
+alias taild='tail -f log/development.log' # tail dev log
+
+function rails-help() {
+  echo "Rails Aliases Usage"
+  echo
+  echo "  r           = rails"
+  echo "  rg          = rails generate"
+  echo "  rs/ss       = rails server"
+  echo "  ts          = thin server"
+  echo "  rc/sc       = rails console"
+  echo "  rn          = rails new"
+  echo "  rd          = rails dbconsole"
+  echo "  rp          = rails plugin"
+  echo "  ra          = rails application"
+  echo "  rd          = rails destroy"
+  echo "  restartapp  = touch tmp/restart.txt"
+  echo "  restart     = touch tmp/restart.txt"
+  echo "  devlog      = tail -f log/development.log"
+  echo "  taild       = tail -f log/development.log"
+  echo
+}
+
diff --git a/aliases/textmate.aliases.bash b/aliases/textmate.aliases.bash
new file mode 100644
index 0000000..ecd616f
--- /dev/null
+++ b/aliases/textmate.aliases.bash
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+# Textmate
+alias e='mate . &'
+alias et='mate app config db lib public script test spec config.ru Gemfile Rakefile README &'
\ No newline at end of file
diff --git a/aliases/vim.aliases.bash b/aliases/vim.aliases.bash
new file mode 100644
index 0000000..d102575
--- /dev/null
+++ b/aliases/vim.aliases.bash
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+alias v='mvim --remote-tab'
\ No newline at end of file