Refactor how zsh functions are loaded