diff --git a/lib/README.md b/lib/README.md
index f9c0c1e..215d738 100644
--- a/lib/README.md
+++ b/lib/README.md
@@ -1,16 +1,43 @@
-
-
-
-
-
+
+
+
+> Oh My Fish Documentation
# Core Library
-## Basic Functions
+
+
+#### `require` _`[--no-bundle] ...`_
+#### `require` _`[--no-bundle] --path ...`_
+
+Does initialization of Oh My Fish compatible packages:
+
+* Autoload function and completion paths
+* Source key bindings
+* Require dependencies from `bundle`
+* Source `init.fish` file
+
+`require` support packages in the following directory structure:
+
+```
+functions/
+completions/
+bundle
+init.fish
+key_bindings.fish
+```
+
+When using the form `require ...`, the search path for packages is
+`$OMF_CONFIG` and `$OMF_PATH`. It's also possible to require directories
+using `--path` switch. To ignore dependency loading you can also use
+`--no-bundle` switch
+
+This function is the base of Oh My Fish framework, being responsible for
+the major part of framework's own startup code.
#### `autoload` _`[-e] ...`_
-Manipulate [autoloading](http://fishshell.com/docs/current/index.html#syntax-function-autoloading) path components.
+Manipulate [autoloading] path components.
All paths ending with `completions` are correctly added to or erased from
`$fish_complete_path`.
@@ -27,56 +54,4 @@ To erase paths from autoload:
autoload -e $mypath $mypath/completions
```
-#### `available` _``_
-
-Check if a program is available to run. Sets `$status` to `0` if the program is available.
-
-Use this function to check if a plugin is available before using it:
-
-```fish
-if available battery
- battery
-end
-```
-
-#### `refresh`
-
-Replace the running instance of fishshell with a new one causing Oh My Fish to reload as well.
-
-#### `prompt_segments`
-
-Extract the root (top-most parent directory), dirname and basename from [`fish_prompt`](http://fishshell.com/docs/current/faq.html#faq-prompt).
-
-## Git Functions
-#### `git_ahead`
-
-Echo a character that represents whether the current repo is ahead, behind or has diverged from its upstream.
-
-##### Default values:
-
-+ ahead: `+`
-+ behind: `-`
-+ diverged: `±`
-+ none: ` `
-
-#### `git_is_repo`
-Set `$status` to `0` if the current working directory belongs to a git repo.
-
-#### `git_branch_name`
-Echo the currently checked out branch name of the current repo.
-
-#### `git_is_dirty`
-Set `$status` to `0` if there are any changes to files already being tracked in the repo.
-
-#### `git_is_staged`
-Set `$status` to `0` if there [staged](http://programmers.stackexchange.com/questions/119782/what-does-stage-mean-in-git) changes.
-
-#### `git_is_stashed`
-Set `$status` to `0` if there are items in the [stash](https://git-scm.com/book/en/v1/Git-Tools-Stashing).
-
-#### `git_is_touched`
-
-Set `$status` to `0` if the repo has any changes whatsoever, including [tracked or untracked](http://stackoverflow.com/questions/9663507/what-is-tracked-files-and-untracked-files-in-the-context-of-git) files.
-
-#### `git_untracked`
-Echo a `\n` separated list of untracked files.
+[autoloading]: http://fishshell.com/docs/current/index.html#syntax-function-autoloading
\ No newline at end of file