diff --git a/README.md b/README.md
index e976492b98ce02245547c039f164b3065c4923a2..c6c2d6a44fe6aec06ea3e6d90abe6a93879924b7 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,20 @@
-## Modeling of Trunk service in WFO
+# Modeling of Trunk service in WFO
+
+This is a dummy implementation of a trunk service in workflow orchestrator. The "pieces" of the trunk service are mapped to Products. The parameters of the trunk service are modelled as Resource Types.
+
+## Quickstart
+
+- Follow Steps 1 and 2 from here: https://workfloworchestrator.org/orchestrator-core/workshops/beginner/debian/
+- To install the orchestrator GUI, you can follow the steps 5 and 6 from the above link.
+- Clone this repo
+- ``pip install -r requirements.txt``
+- Create ``oss-params.json``
+- Export the oss-params file: ``export OSS_PARAMS_FILENAME="/path/to/file.json"``
+- The core of workflow orchestrator can be started with ``uvicorn --host 0.0.0.0 --port 8080 main:app`` from inside the ``geant_service_orchestrator`` directory of this repo.
+- The GUI can be started with ``yarn start``.
+
+## Structure description
+
 ### Products & fixed inputs
 - Trunk
     - Reference to PB Trunk
@@ -30,47 +46,43 @@
 	- GeantASid
 	- IPv4Address
 	- IPv6Address
-	- Members (How to model arrays?)
+	- Members
 	- Reference to PB TrunkConfig
 
-### Doubts related to products
-Does “optional” in a resource in the provisioning stage make sense for attributes that the end user does not choose? The provision step in the workflow is used to create the ID and call whatever management system to provision the actual product. Does "optional" just mean that in the final subscription the parameter can be left empty by the user?
-**Optional means that the user is allowed to submit the process/subscription with the resource left empty.**
-
-How to enforce that each TrunkConfig has exactly 2 TrunkConfigSide? n the workflow, in the selector of the parent product block, in Choice you can specify min_items and max_items. But in my case hierarchy is in the opposite direction (I can select multiple trunk_config from trunk_config_side but not the other way around). So it seems this can't be enforced by WFO?
-**You can create two TrunkConfigSide's that refer to the same TrunkConfig block (but this is not enforced, you can have 0, 1, or 3+, like with other products)**
-
-How hierarchy should be (TrunkConfig contains product block reference to Trunk like it is now, or the opposite)? As it’s now, you make a Trunk first, and in TrunkConfig input you select a Trunk. Then in TrunkConfigCommon and TrunkConfigSide input you select a TrunkConfig.
-
 ### Workflows
-- Create / Modify? / Terminate for:
+- Workflows included are CREATE and TERMINATE for:
     - Trunk
     - TrunkConfig
     - TrunkConfigCommon
     - TrunkConfigSide
 
-### Workflow doubts
-In the example tutorial, _provision_in_group_management_system, a hash is created from something like the user_name and that builds the user_id. Does this mean that user_name is unique? How is this enforced?
 
-Can you select which resource types are “fixed” in the modify workflow once the subscription of a trunk service is Active?
+## Useful WFO Resources
+- WFO API (Swagger): https://workfloworchestrator.org/orchestrator-core/architecture/application/api/
+- WFO API (repo): https://github.com/workfloworchestrator/orchestrator-core/tree/main/orchestrator/api/api_v1/endpoints
+- Carolina notes:
+https://wiki.geant.org/pages/viewpage.action?pageId=562921625
 
-If I update the python code of a workflow but its name and associated product stays the same, do I have to do anything to reflect its update (e.g. delete the workflow in a migration then add it again, or just add it again, or do nothing)?
-**Nothing needs to be done**
+### API examples
 
-I have a workflow called “create_trunk”, which is a workflow of the product type called “Trunk”.
- I get this error when trying to “Create new process / subscription” in the GUI after registering the workflows, and also by doing a POST to http://10.98.1.62:8080/api/processes/create_trunk:
-``INFO:     10.98.1.62:53656 - "POST /api/processes/create_trunk HTTP/1.1" 404 Not Found``
-Is process the same as subscription? If not, what’s the endpoint/way to create a subscription from a workflow?
-**Running products DB migration again fixed this (even though I think I submitted exactly the same data...)**
+*Note: update IP address in the request to your own where you're running WFO.*
 
-## TODO
-- Fix flake8 errors for main.py products and workflows imports
-- Integrate provision step (in CreateTrunkConfigSide) with IPAM/Infoblox
+**Creating subscriptions** (look at initial_input_form_generator method of the workflow to find what properties need to be passed in the data of the POST request)
 
-## Resources
-WFO API:
-https://workfloworchestrator.org/orchestrator-core/architecture/application/api/ (Swagger)
-https://github.com/workfloworchestrator/orchestrator-core/tree/main/orchestrator/api/api_v1/endpoints
+Create process that produces a new subscription (CREATE workflow)
 
-Carolina notes:
-https://wiki.geant.org/pages/viewpage.action?pageId=562921625
+``curl -X POST -H "Content-Type: application/json" http://10.98.1.62:8080/api/processes/create_trunk --data '[{"product": "321045fc-21ec-476b-b67b-5f211e47c3d7"},{"trunk_name": "mytrunkfromapi", "geant_s_sid": "a1b2c3"}]'``
+
+Create process that manipulates the state of a subscription (TERMINATE workflow)
+
+``curl -X POST -H "Content-Type: application/json" http://10.98.1.62:8080/api/processes/terminate_trunk --data '[{"subscription_id": "910e7044-c427-46d1-afc3-7817e221d45d"}, {"are_you_sure": "yes"}]'``
+
+**Deleting subscriptions** (not the same as running a TERMINATE workflow for a subscription, but to actually erase it from the WFO database)
+
+Delete a subscription:
+
+``curl -X 'DELETE' 'http://10.98.1.62:8080/api/subscriptions/3f16532b-0a48-4fe3-802a-36b3f54eed0e'``
+
+To do the above, you first have to delete the processes first:
+
+``curl -X 'DELETE' 'http://10.98.1.62:8080/api/processes/7447a3e9-7c58-4ae7-8804-c0a75c39c924'``