diff --git a/docs/40_Installation.md b/docs/40_Installation.md
index 9966daf045c2a2c2aff8860cc3e9008132bac606..47777e6026e1d30f702b6b727c9adfac1427908e 100644
--- a/docs/40_Installation.md
+++ b/docs/40_Installation.md
@@ -14,24 +14,29 @@
 This is the filestructure you get
 
 ```text
-
+.
 ├── Readme.md
 ├── classes
 │   :
-│
 ├── config.php.dist      <<< config template
 ├── docs
 │   :
-│
-├── functions.js         <<< Javascript
+├── functions.js
 ├── inc_functions.php
-├── inc_mode_boxes.php   <<< View: boxes that can be filtered
-├── inc_mode_wayf.php    <<< View: WAYF javascript from Switch
 ├── index.php
 ├── lang                 <<< folder with translation files (Json)
 │   :
-│
-└── login_aai.css
+├── login_aai.css
+├── mode                 <<< Views
+│   ├── boxes
+│   │   ├── index.php
+│   │   └── screen.css
+│   ├── list
+│   │   :
+│   └── wayf
+│       :
+├── screen.css
+└── screen_custom.css.dist
 ```
 
 * Copy **config.php.dist** to config.php and make your changes. See chapter Configuration.
@@ -43,7 +48,7 @@ This is the filestructure you get
 
 The web ui offers just a frontend for your visitors to link multiple organisations.
 
-That the logins at another IDP work you need to
+That the logins at another IDP work you still need to
 
 * Create a Service provider on your AAI Federation
 * Configure Shibboleth and whitelist the wanted IDPs
@@ -53,5 +58,6 @@ That the logins at another IDP work you need to
 
 Links:
 
+* <https://www.shibboleth.net/>
 * <https://en.wikipedia.org/wiki/Shibboleth_(software)>
 * <https://met.refeds.org/>
diff --git a/docs/50_Configuration.md b/docs/50_Configuration.md
index 7f91ccf381bcedeee39e04b897493fdffb908c52..009c4e88278b68d5fcb1478bb663bb90fc488e73 100644
--- a/docs/50_Configuration.md
+++ b/docs/50_Configuration.md
@@ -1,5 +1,7 @@
 ## Configuration
 
+### config.php
+
 First an example configuration:
 
 ```php
@@ -52,7 +54,7 @@ return [
 |--   |--            |--
 | title              | string  | Title of the login page; used for title tag and h1 header
 | lang               | string  | Language to detect texts in discofeed as 2 letter code; If the language is not found it takes the 1st text item
-| mode               | string  | Selection mode; one of <br>-`"wayf"` Selection with WAYF script from Switch or<br>- `"boxes"` Boxes with images incl. filter field
+| mode               | string  | Selection mode; one of <br>- `"boxes"` Boxes with images incl. filter field<br>- `"list"` Top down list of IDPs with images incl. filter field<br>- `"wayf"` Selection with WAYF script from Switch
 | text-info          | string  | When not empty: show a warning banner with its text on top eg. for maintenance messages
 | text-before-wayf   | string  | Text to show before wayf select box (for mode = "wayf" only)
 | text-after-logins  | string  | Fisnishing text after
@@ -60,3 +62,15 @@ return [
 | return-url         | string  | Return url to your application afer logging in on then organization url<br>- '/shib_login.php' is for Ilias LMS
 | cachefile          | string  | Releative path for cache file; default: discofeed.json
 | cachettl           | integer | Caching time for cache file (discofeed.json ); default: 60 min
+
+### Custom Css
+
+Place a file named "screen_custom.css". If this exists it will be added in the html code after all other css files. There you can override all styles and values.
+
+### Custom look
+
+If you want to modify the look of the Idp selection:
+
+* go to directory "mode"
+* Make a copy of a view, eg. copy "boxes" to "myboxes" and make your changes in the copy
+* To activate edit the ./config.php and set `'mode' => 'myboxes',`
diff --git a/docs/60_Integration.md b/docs/60_Integration.md
new file mode 100644
index 0000000000000000000000000000000000000000..9ae59117f245a1b4b27c2519d3415141574e2285
--- /dev/null
+++ b/docs/60_Integration.md
@@ -0,0 +1,50 @@
+## Integration
+
+### Ilias 9
+
+Here are my steps to integrate the AAI login into Ilias.
+It works without any hack.
+
+#### Custimize Login page
+
+Edit the Login page using the rich text editor. Keep in mind that it filters html tags like
+
+* `<script>`
+* `<noscript>`
+* `<style>`
+
+But you can set a link with html.
+
+```html
+<div class="ilStartupSection">
+    <div class="form-horizontal">
+        <h2>AAI Login</h2>
+        <p>
+            [Your introduction text]<br>
+            <br>
+            <a href="/login_aai/" class="btn btn-default">AAI Login</a>
+        </p>
+    </div>
+</div>
+```
+
+#### Configure AAI Logon script
+
+Extract the AAI logon source in the webroot of your Ilias installation.
+It is next to login.php from Ilias:
+
+```text
+# ls -1d *log*
+login.php
+login_aai       <<<
+logout.php
+shib_login.php
+shib_logout.php
+
+```
+
+In the ./login_aai/**config.php** 
+
+* set a return url to shib_login.php `'return-url' => '/shib_login.php',`
+* set your IDPs that you want to enable for selection `'idps' => [...],`
+* Customize the look and feel. See page Configuration
diff --git a/docs/90_Development.md b/docs/90_Development.md
index 38d7f06e16441b85e3ac023b059be0223ece30fc..f913435f31c10a7848f989d2dcf5253a41ae0da0 100644
--- a/docs/90_Development.md
+++ b/docs/90_Development.md
@@ -2,7 +2,7 @@
 
 * Requirements: local installation of php; you can use its internal webservice
 * Extract files in a local folder or use git clone
-* in functions.js set `var bShowLoginOnError = false;`to `true`
+* in functions.js set `var bShowLoginOnError = false;`to `true` to see the Idp selection without having a shibboleth installation
 * start `php -S localhost:9000` and open <http://localhost:9000> in your webbrowser
 * Get the files of the discofeed from a production machine running shibboleth and store it as discofeed cache file:<br> `curl https://example.com/Shibboleth.sso/DiscoFeed > discofeed.json`
 * After reachin cache TTL you can repeat the curl command or `touch discofeed.json`