diff --git a/README.md b/README.md
index e69de29..d9a5ce4 100644
--- a/README.md
+++ b/README.md
@@ -0,0 +1,119 @@
+# Rokoko Studio Live for Maya
+
+This plugin lets you stream animation data from Rokoko Studio into Maya.
+
+![pluginManager](images/pluginView.png)
+
+## Requirements
+
+Maya 2020 or higher
+
+## Installation
+
+* Download the plugin: `link`
+* In Maya go to Windows -> Settings/Preferences -> Plug-in Manager
+ ![pluginManager](images/openPluginManager.png)
+* Browse downloaded mll
+ ![browsePlugin](images/browsePlugin.png)
+* And enable it
+ ![loadPlugin](images/loadPlugin.png)
+* Go to script editor (Windows -> General Editors -> Script Editor)
+and type `showRSLM` command
+ ![scriptCmd](images/scriptCmd.png)
+* Select command text and middle click drag it onto the shelf
+ ![dragScript](images/dragScript.png)
+
+## Plugin anatomy
+
+Plugin's UI consists of 3 collapsible categories.
+
+![anatomy](images/anatomy.png)
+
+1. **Rokoko Studio Live** - Is the main category where user will see studio contents, map/unmap entities.
+2. **Studio Command API** - Functionalities for calibrating and recording in Rokoko Studio. See [detailed description](https://rokokoelectronics.github.io/studio-command-api-docs/) here.
+3. **Info** - Links to documentation and tutorials.
+
+# Usage
+
+First of all, make sure Rokoko Studio is running and live streaming **Custom** option is enabled.
+Select `JSON v2` as data format and `UDP` as protocol. Leave `Port` and `Forward IP` values by default.
+![enableStreaming](images/customStreaming.png)
+
+Than go to Maya and hit `Start Receiver` button.
+You will see received objects below in a tree structure that resembles scene overview in Studio.
+![startReceiver](images/startReceiver.png)
+
+## General workflow idea
+All interactions between studio objects and maya objects are made by context menus. User selects
+something in maya and this selection will be considered by context menu actions.
+![ctxMenus](images/ctxMenus.gif)
+
+## Streaming virtual production data
+
+### Start streaming (Map objects)
+
+After starting the receiver, select the object in maya viewport that
+you want to associate with studio object. Right click on studio object in tree view
+and select `Map to selected objects` entry.
+![mapProp](images/mapProp.gif)
+
+### Stop streaming (Unmap objects)
+Right click on studio object in tree view and
+select `Unmap selected objects` or `Unmap all` option.
+![mapProp](images/unmapProp.gif)
+
+> **NOTE**: Same valid for tracker objects ( )
+
+> **HINT**: Transformations applied to all 6 channels including scale. You may want to scale or offset your maya object, just put it into a group and map this group
+instead.
+
+## Streaming character data
+
+After starting the receiver, right click on character studio object in tree view
+and select `Create HIK skeleton`. Once new skeleton created select, right click character again
+and select `Map to active character`. Currently active character in HIK panel will be mapped.
+
+![mapCharacters](images/mapCharacters.gif)
+
+> **NOTE**: In order to map your custom character, you must define it in HIK panel,
+and set studio mapped character as source.
+
+## Streaming face data
+
+After starting the receiver, select geometry in maya viewport that hosts face blend shapes, right click on face studio object in tree view
+and select `Map to selected objects`. After face geometry is mapped you need to map weight names, to do
+that right click face studio object again and select `Automap weights`.
+![faceMapping](images/faceMapping.gif)
+
+# Recording
+To record objects, hit `Start Recording` button. All mapped objects will be recorded into keyframes.
+![rec](images/recording.gif)
+
+> **NOTE**: Maya's current frame will be considered. Recorded frame range displayed in the right side of record button.
+> If you make new recording on top of previous, keyframes will be updated.
+
+# How mapping works
+
+General approach used to map objects are maya's custom attributes. Custom attributes
+is native thing and they are saved with maya scenes. Which means that our mapping information
+will be preserved across maya sessions.
+
+For each object we create slightly different attributes.
+
+## Props and trackers
+
+In case of props and trackers we just add a single field with identifier.
+![propID](images/propID.png)
+
+## Characters
+In case of characters we map skeleton root bone (Hip). The rest of the bones will
+be automatically detected during animation.
+![charID](images/charID.png)
+> **WARN**: Do not try to map custom skeletons. Plugin able to work only with hik generated skeletons
+
+## Faces
+In case of faces we map blendshape nodes that connected to geometry. Custom compound attribute
+will be added to each node. Besides face ID, we add 53 extra fields for each studio face shape.
+![faceIDA](images/faceIDA.png)
+This fields used to map blendshape's existing weight names.
+![faceIDA](images/faceIDB.png)
diff --git a/images/anatomy.png b/images/anatomy.png
new file mode 100644
index 0000000..c197c00
Binary files /dev/null and b/images/anatomy.png differ
diff --git a/images/browsePlugin.png b/images/browsePlugin.png
new file mode 100644
index 0000000..d1a11a4
Binary files /dev/null and b/images/browsePlugin.png differ
diff --git a/images/charID.png b/images/charID.png
new file mode 100644
index 0000000..d0bf9de
Binary files /dev/null and b/images/charID.png differ
diff --git a/images/ctxMenus.gif b/images/ctxMenus.gif
new file mode 100644
index 0000000..897eebc
Binary files /dev/null and b/images/ctxMenus.gif differ
diff --git a/images/customStreaming.png b/images/customStreaming.png
new file mode 100644
index 0000000..2e1ae93
Binary files /dev/null and b/images/customStreaming.png differ
diff --git a/images/dragScript.png b/images/dragScript.png
new file mode 100644
index 0000000..f1ccfdd
Binary files /dev/null and b/images/dragScript.png differ
diff --git a/images/faceIDA.png b/images/faceIDA.png
new file mode 100644
index 0000000..690c199
Binary files /dev/null and b/images/faceIDA.png differ
diff --git a/images/faceIDB.png b/images/faceIDB.png
new file mode 100644
index 0000000..d384180
Binary files /dev/null and b/images/faceIDB.png differ
diff --git a/images/faceMapping.gif b/images/faceMapping.gif
new file mode 100644
index 0000000..ef8470f
Binary files /dev/null and b/images/faceMapping.gif differ
diff --git a/images/loadPlugin.png b/images/loadPlugin.png
new file mode 100644
index 0000000..9c92b2c
Binary files /dev/null and b/images/loadPlugin.png differ
diff --git a/images/mapCharacters.gif b/images/mapCharacters.gif
new file mode 100644
index 0000000..97e15df
Binary files /dev/null and b/images/mapCharacters.gif differ
diff --git a/images/mapProp.gif b/images/mapProp.gif
new file mode 100644
index 0000000..9416365
Binary files /dev/null and b/images/mapProp.gif differ
diff --git a/images/openPluginManager.png b/images/openPluginManager.png
new file mode 100644
index 0000000..f25abd5
Binary files /dev/null and b/images/openPluginManager.png differ
diff --git a/images/pluginView.png b/images/pluginView.png
new file mode 100644
index 0000000..4019f4b
Binary files /dev/null and b/images/pluginView.png differ
diff --git a/images/propID.png b/images/propID.png
new file mode 100644
index 0000000..93e6ef8
Binary files /dev/null and b/images/propID.png differ
diff --git a/images/recording.gif b/images/recording.gif
new file mode 100644
index 0000000..ea4fa02
Binary files /dev/null and b/images/recording.gif differ
diff --git a/images/scriptCmd.png b/images/scriptCmd.png
new file mode 100644
index 0000000..4e5aaa7
Binary files /dev/null and b/images/scriptCmd.png differ
diff --git a/images/startReceiver.png b/images/startReceiver.png
new file mode 100644
index 0000000..c7ad5e1
Binary files /dev/null and b/images/startReceiver.png differ
diff --git a/images/unmapCharacters.gif b/images/unmapCharacters.gif
new file mode 100644
index 0000000..552e8f1
Binary files /dev/null and b/images/unmapCharacters.gif differ
diff --git a/images/unmapProp.gif b/images/unmapProp.gif
new file mode 100644
index 0000000..f58941f
Binary files /dev/null and b/images/unmapProp.gif differ
diff --git a/src/ui/receivercontent.cpp b/src/ui/receivercontent.cpp
index de2aba6..2e93a7a 100644
--- a/src/ui/receivercontent.cpp
+++ b/src/ui/receivercontent.cpp
@@ -290,6 +290,7 @@ void ReceiverContent::populateTree()
{
QTimer::singleShot(250, [&](){
// populate props
+ treeWidget->clear();
auto props = Animations::get()->getProps();
QHash propsItemMap;
foreach(auto prop, props) {