+ZSH_DATA=$XDG_DATA_HOME/zsh
+ZSH_CACHE=$XDG_CACHE_HOME/zsh
+[[ ! -d "$ZSH" ]]       && echo "Missing config dir: '$ZSH'"      && return
+[[ ! -d "$ZSH_CACHE" ]] && echo "Missing cache dir: '$ZSH_CACHE'" && return
+[[ ! -d "$ZSH_DATA" ]]  && echo "Missing data dir: '$ZSH_DATA'"   && return
+
+# load my functions
+typeset -U fpath    # make fpath a unique array
+[[ -d $ZSH/functions ]] && fpath=($ZSH/functions $fpath)
+autoload -U ${fpath[1]}/*(:t)   # loads all functions in the first element of fpath