diff --git a/README.md b/README.md
index c0c6294..31d6a6c 100644
--- a/README.md
+++ b/README.md
@@ -1,42 +1,107 @@
# start_papermc.sh
-A better script for running Paper Minecraft server with features such as automatic build updates, automatic downlading, interactive eula accepting, interactive updating, etc.
-> **Warning**
->
-> - This script is not made for migrating versions. If you're migrating versions, delete your old server's `.jar` file and change the version in the script's settings
-> - I am not responsible for any lost data
-> - If enough people request it (or someone creates a PR) I'll add this functionality
+A better script for running Paper Minecraft server with features such as
+version downlading, automatic build update, interactive eula accepting, protection
+against accidental version update, Aikar's flags out of the box, etc.
+## Table of contents
+
+
+- [Dependencies](#dependencies)
+- [Basic setup](#basic-setup)
+- [Updating](#updating)
+ - [Builds](#builds)
+ - [Versions](#versions)
+- [Default JVM flags used](#default-jvm-flags-used)
+
+
+
+
+
+## Dependencies
+
+- `jq`
+- `awk`
+- `curl`
+
+Most, if not all, of these should be already available on your system if you're running something like Ubuntu.
+
+
## Basic setup
+
> **Note**
>
> Everything mentioned below is modified at the top of the `start.sh` file
-1. Clone this repository and enter the directory: `git clone https://github.com/jiriks74/start_papermc.sh minecraft_server && cd minecraft_server`
+1. Clone this repository and enter the directory:
+
+```bash
+git clone https://github.com/jiriks74/start_papermc.sh minecraft_server && cd minecraft_server
+```
+
> **Note**
>
-> If you want to have the server under some specific directory name, just change `minecraft_server` to something else
+> If you want to have the server under some specific directory name, just change
+`minecraft_server` to something else
-2. Open `star.sh` in your favorite editor *(eg. `nano start.sh)*
+2. Open `start.sh` in your favorite editor *(eg. `nano start.sh`)*
-3. Change the `version` variable to the version you want
- ```bash
-version="1.12.2"
+3. Change the `select_version` variable to the version you want
+
+```bash
+select_version="1.12.2"
```
4. If you want a specific build, set the `select_build` variable. Othervise the sript will download the latest build:
- ```bash
+
+```bash
select_build="1620"
```
5. Select how much memory you want your server to use ***(in megabytes)***:
- ```bash
+
+```bash
mem="8000M"
```
-6. Allow executing ov the script with `chmod +x start.sh`
-7. Run the script with `./start.sh`
+6. Add execute flag to the script:
+```bash
+chmod +x start.sh
+```
+
+7. Start the script
+
+```bash
+./start.sh
+```
+
+
+## Updating
+
+
+### Builds
+
+This script can automatically update to the latest papermc build available for the
+Minecraft version you selected. If you want this behaviour, leave the `select_build`
+veriable empty.
+Otherwise select the build you want and the script will download it for you.
+
+
+### Versions
+
+> **Warning**
+>
+> - This script is not made for migrating versions. It won't make sure your plugins
+are working or that your worlds won't get corrupted. It only downloads a new server
+file, nothing else.
+> - **I am not responsible for any lost data**
+
+This script is able to update/downgrade versions as you please. Just change the
+`select_version` variable to the version you want and the script will download
+it for you.
+
+
## Default JVM flags used
By default this script uses [Aikar's Flags](https://docs.papermc.io/paper/aikars-flags). It's set up so that it automatically modifies them if over