diff --git a/docs/create-your-own-introduction.md b/docs/create-your-own-introduction.md
index 3e9ef1a554662ffd61bec836d0e3f37606558bff..57882f9b5be98c21e7a57f9c72734b192bfea33c 100644
--- a/docs/create-your-own-introduction.md
+++ b/docs/create-your-own-introduction.md
@@ -1 +1,15 @@
 # Create Your Own
+
+As the combination of the **Form Processor** extension and the **Action Provider** extension really is a framework it is relatively easy to develop your own actions.
+
+This could be necessary because:
+* the current set of actions is limited to what we needed initially and it could well be that you need an action that is not there but will be very useful to others as well.
+This probably means you want to develop a new action in the **Action Provider** extension (with a pull request).
+
+* you need to develop a very specific action which is only meaningful for the organisation/project you are working with.
+In this case you will probably create your specific action in your own extension.
+
+!!! Note
+    The **Action Provider** is a separate extension rather than part of the **Form Processor** because it can also be used by other extensions (at the moment the [Data Processor extension][dataprocessor]).
+
+[dataprocessor]:https://civicrm.org/extensions/data-processor
diff --git a/docs/sign-up-newsletter.md b/docs/sign-up-newsletter.md
index 3681ec2e45263fb87e51236d345868f66461a5f2..7824c30771faf62d0b1953e448e5530ac20fc4e8 100644
--- a/docs/sign-up-newsletter.md
+++ b/docs/sign-up-newsletter.md
@@ -1 +1,60 @@
 # Example of a basic form to sign up for a newsletter
+
+This example details how to create a form on my public website where a visitor can enter *first name, last name and email* and click to sign up for our monhtly newsletter.
+The **Form Processor** extension will make sure this is processed in the CiviCRM backend.
+
+The public website is on another server than CiviCRM and I am using Drupal 7 on my public website example.
+
+## Defining the form processor
+
+The general information for my form processor looks like this:
+
+![Form Processor General](/images/newsletter-general-fp.png)
+
+On my form processor I will accept 3 inputs: first name, last name and email.
+The email will be validated (is it a valid email?).
+
+![Form Processor Inputs](/images/newsletter-input-fp.png)
+
+Once the form is sent from the public website I would like the following to happen:
+
+* check if we already have a contact with the email entered and if so, use that contact
+* if there is no contact with the email yet, create a new contact with the email, first and last name from the form
+* add the found or created contact to our newsletter group
+
+So here is what the actions look like:
+
+![Form Processor Actions](/images/newsletter-actions-fp.png)
+
+The action to find or create the contact has been specified so:
+
+![Action to Find or Create Contact](/images/newsletter-find-action.png)
+
+Finally in the action to add the contact to the group I have selected the group the contact should be added to and specified that the contact ID found in the find action should be used.
+
+![Action to Add to Group](/images/newsletter-group-action.png)
+
+## Testing the form processor with the api explorer
+
+Once I have specified my form processor I can test if it works as I would expect.
+The form processor generates an API action for the API entity FormProcessor so I can use the API Explorer (Support>Developer>Api Explorer v3) to test if it works.
+
+In this case this is what I will enter:
+
+![Test with API Explorer](/images/newsletter-api-test.png)
+
+And if I then click on **Execute** it should actually add or find the contact and add him/her to the newsletter group.
+
+## Defining the form in Drupal 7
+
+
+
+### CiviMRF profile
+
+### CiviMRF for the form
+
+### Adding the fields on the form
+
+### The end result of the form
+
+## Result!
diff --git a/images/newsletter-actions-fp.png b/images/newsletter-actions-fp.png
new file mode 100644
index 0000000000000000000000000000000000000000..5c17ab849b53375ba19ac0ceb4296a457543eda8
Binary files /dev/null and b/images/newsletter-actions-fp.png differ
diff --git a/images/newsletter-api-test.png b/images/newsletter-api-test.png
new file mode 100644
index 0000000000000000000000000000000000000000..7b4290875f6b1c2eb9965ae48dbefa565e367928
Binary files /dev/null and b/images/newsletter-api-test.png differ
diff --git a/images/newsletter-find-action.png b/images/newsletter-find-action.png
new file mode 100644
index 0000000000000000000000000000000000000000..fd4c587088319c618d2a0c0d30fd8d2b93b01374
Binary files /dev/null and b/images/newsletter-find-action.png differ
diff --git a/images/newsletter-form-fields-message.png b/images/newsletter-form-fields-message.png
new file mode 100644
index 0000000000000000000000000000000000000000..b79ef19037b5f5007ec91e1c6f09cdc204043ebf
Binary files /dev/null and b/images/newsletter-form-fields-message.png differ
diff --git a/images/newsletter-general-fp.png b/images/newsletter-general-fp.png
new file mode 100644
index 0000000000000000000000000000000000000000..8734e31dd8f9959a5f3a71367fa5fed07f509575
Binary files /dev/null and b/images/newsletter-general-fp.png differ
diff --git a/images/newsletter-group-action.png b/images/newsletter-group-action.png
new file mode 100644
index 0000000000000000000000000000000000000000..466bf2e12dca876dc09e2a95c21bbce83e3bf7f9
Binary files /dev/null and b/images/newsletter-group-action.png differ
diff --git a/images/newsletter-inputs-fp.png b/images/newsletter-inputs-fp.png
new file mode 100644
index 0000000000000000000000000000000000000000..c283832c591c8a0d5edf4a317e34997ad325343f
Binary files /dev/null and b/images/newsletter-inputs-fp.png differ
diff --git a/images/output-handler.png b/images/output-handler.png
index f33be24589c82f3c7c61de166afd10431bea489b..07a7cc297b3d0a0fdda83faa117167fbc115ea8f 100644
Binary files a/images/output-handler.png and b/images/output-handler.png differ