diff --git a/.gitignore b/.gitignore
index 8fdfae2..31cc75c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,7 +1,4 @@
 locals.zsh
 log/.zsh_history
 projects.zsh
-custom/*
-!custom/example
-!custom/example.zsh
 cache
diff --git a/custom/aliases.zsh b/custom/aliases.zsh
new file mode 100644
index 0000000..5c2c928
--- /dev/null
+++ b/custom/aliases.zsh
@@ -0,0 +1,73 @@
+# The 'ls' family
+# ------------------------------------------------------------------------------
+[[ "$DISABLE_COLOR" != 'true' ]] && {
+  [[ -x "${commands[gdircolors]}" ]] && use_color_gnu='true' || use_color_bsd='true'
+}
+
+[[ "$use_color_gnu" == 'true' ]] && eval $(gdircolors $HOME/.dir_colors)
+[[ "$use_color_bsd" == 'true' ]] && export CLICOLOR=1
+[[ "$use_color_bsd" == 'true' ]] && export LSCOLORS="exfxcxdxbxegedabagacad"
+
+# add colors for filetype recognition
+[[ "$use_color_gnu" == 'true' ]] && alias ls='ls -hF --group-directories-first --color=auto'
+[[ "$use_color_bsd" == 'true' ]] && alias ls='ls -G -F'
+
+alias la='ls -Ahl'           # show hidden files
+alias lx='ls -lhXB'          # sort by extension
+alias lk='ls -lhSr'          # sort by size, biggest last
+alias lc='ls -lhtcr'         # sort by and show change time, most recent last
+alias lu='ls -lhtur'         # sort by and show access time, most recent last
+alias lt='ls -lhtr'          # sort by date, most recent last
+alias lm='ls -ahl | more'    # pipe through 'more'
+alias lr='ls -lhR'           # recursive ls
+alias l='ls -lha'
+alias ll='ls -lh'
+
+# General
+# ------------------------------------------------------------------------------
+alias rm='nocorrect rm -i'
+alias cp='nocorrect cp -i'
+alias mv='nocorrect mv -i'
+alias ln='nocorrect ln -i'
+alias du='du -kh'
+alias df='df -kh'
+alias e="$EDITOR"
+alias get='curl -C - -O'
+alias mkdir='nocorrect mkdir -p'
+alias q='exit'
+alias ssh='ssh -X'
+alias h='history'
+alias j='jobs -l'
+alias type='type -a'
+alias print-path='echo -e ${PATH//:/\\n}'
+alias print-libpath='echo -e ${LD_LIBRARY_PATH//:/\\n}'
+alias lsbom='lsbom -f -l -s -pf'
+alias t="$HOME/.local/bin/t --task-dir ~/.tasks --list todo.txt --delete-if-empty"
+
+if [[ -x "${commands[htop]}" ]]; then
+  alias top=htop
+else
+  alias topm='top -o vsize'
+  alias topc='top -o cpu'
+fi
+
+[[ "$DISABLE_COLOR" != 'true' ]] && {
+  [[ -x "${commands[colordiff]}" ]] && alias diff='colordiff'
+  [[ -x "${commands[colormake]}" ]] && alias make='colormake'
+}
+
+# Screen
+# ------------------------------------------------------------------------------
+[[ "$TERM" == 'xterm-color' ]] && screenrc="$HOME/.screenrc"
+[[ "$TERM" == 'xterm-256color' ]] && screenrc="$HOME/.screenrc256"
+alias screen="screen -c '$screenrc'"
+alias sls="screen -c '$screenrc' -list"
+alias surd="screen -c '$screenrc' -aAURD"
+alias sus="screen -c '$screenrc' -US"
+
+# TMUX
+# ------------------------------------------------------------------------------
+[[ "$TERM" == 'xterm-color' ]] && tmuxconf="$HOME/.tmux.conf"
+[[ "$TERM" == 'xterm-256color' ]] && tmuxconf="$HOME/.tmux256.conf"
+alias tmux="tmux -f '$tmuxconf'"
+alias tls="tmux list-sessions"
diff --git a/custom/directories.zsh b/custom/directories.zsh
new file mode 100644
index 0000000..1237335
--- /dev/null
+++ b/custom/directories.zsh
@@ -0,0 +1 @@
+unsetopt auto_pushd
\ No newline at end of file
diff --git a/custom/example/example.plugin.zsh b/custom/example/example.plugin.zsh
deleted file mode 100644
index 406f274..0000000
--- a/custom/example/example.plugin.zsh
+++ /dev/null
@@ -1,2 +0,0 @@
-# Add your own custom plugins in the custom/plugins directory. Plugins placed
-# here will override ones with the same name in the main plugins directory.
diff --git a/custom/functions.zsh b/custom/functions.zsh
new file mode 100644
index 0000000..01165de
--- /dev/null
+++ b/custom/functions.zsh
@@ -0,0 +1,46 @@
+function cdll() {
+  if [[ -n "$1" ]]; then
+    builtin cd "$1"
+    ls -lFhA
+  else
+    ls -lFhA
+  fi
+}
+
+function pushdll() {
+  if [[ -n "$1" ]]; then
+    builtin pushd "$1"
+    ls -lFhA
+  else
+    ls -lFhA
+  fi
+}
+
+function popdll() {
+  builtin popd
+  ls -lFhA
+}
+
+function grab() {
+  sudo chown -R ${USER} ${1:-.}
+}
+
+function reload() {
+  source "$HOME/.zshrc"
+}
+
+function calc() {
+  echo "scale=4; $@" | bc -l
+}
+
+function pmine() {
+  ps $@ -u $USER -o pid,%cpu,%mem,command
+}
+
+function findexec() {
+  find . -type f -iname '*'${1:-}'*' -exec ${2:-file} {} \;
+}
+
+function httpserve() {
+  python -m SimpleHTTPServer
+}
diff --git a/custom/grep.zsh b/custom/grep.zsh
new file mode 100644
index 0000000..4dc7adc
--- /dev/null
+++ b/custom/grep.zsh
@@ -0,0 +1,7 @@
+if [[ "$DISABLE_COLOR" != "true" ]]; then
+    export GREP_OPTIONS='--color=auto'
+    export GREP_COLOR='37;45'
+else
+    export GREP_OPTIONS='--color=none'
+    export GREP_COLOR=''
+fi
diff --git a/custom/example.zsh b/custom/shortcuts.zsh
similarity index 100%
rename from custom/example.zsh
rename to custom/shortcuts.zsh