diff --git a/doc/RFC_XR_Fragments.md b/doc/RFC_XR_Fragments.md
index 4b3375e..1b8fd59 100644
--- a/doc/RFC_XR_Fragments.md
+++ b/doc/RFC_XR_Fragments.md
@@ -115,6 +115,7 @@ XR Fragments allows us to better use implicit metadata inside 3D scene(files), b
   1. [XR Fragment URL Grammar](#xr-fragment-url-grammar)
 1. [Spatial Referencing 3D](#spatial-referencing-3d)
 1. [Level0: Files](#level0-files)
+  1. [timelines](#timelines)
   1. [via href metadata](#via-href-metadata)
   1. [via chained extension](#via-chained-extension)
   1. [via subdocuments/xattr](#via-subdocuments-xattr)
@@ -304,6 +305,16 @@ A 3D scene-file can be considered XR Fragment-compatible when it contains
 There are **optional** auto-loaded [side-car files]() to enable hasslefree [XR Movies](#XR%20Movies).
 they can accomodate developers or applications who (for whatever reason) must not modify the 3D scene-file (a `.glb` e.g.).
 
+## Timelines
+
+when a loaded file contains a timeline (animations/subtitles e.g.), then:
+
+> All timelines must play (looped) by default (to enable [[XR Movies]])
+
+Unless an object has multiple animations (actions e.g.), then just play the first or with name `default`.
+
+
+
 ## via href metadata
 
 ```
diff --git a/doc/RFC_XR_Macros.html b/doc/RFC_XR_Macros.html
deleted file mode 100644
index 8e48cf8..0000000
--- a/doc/RFC_XR_Macros.html
+++ /dev/null
@@ -1,465 +0,0 @@
-
-
-
-stream: IETF -area: Internet -status: informational -author: Leon van Kammen -date: 2023-04-12T00:00:00Z -workgroup: Internet Engineering Task Force -value: draft-XRMACROS-leonvankammen-00 -- - - -
This draft offers a specification for embedding macros in existing 3D scenes/assets, to offer simple interactions and configure the renderer further.
-Together with URI Fragments, it allows for rich immersive experiences without the need of a complicated sandboxed scripting languages.
--Almost every idea in this document is demonstrated at https://xrfragment.org, as this spec was created during the XR Fragments spec.
-
How can we add more features to existing text & 3D scenes, without introducing new dataformats?
-Historically, there’s many attempts to create the ultimate markuplanguage or 3D fileformat.
-Their lowest common denominator is: (co)authoring using plain text.
-Therefore, XR Macros allows us to enrich/connect existing dataformats, by offering a polyglot notation based on existing notations:
-- -NOTE: The chapters in this document are ordered from highlevel to lowlevel (technical) as much as possible
-
!clickme: fog=0,10 e.g.)| symbol to π² roundrobin variable values (!toggleme: fog=0,10|fog=0,1000 e.g.)!setlocal: foo=1 writes foo:1 metadata to the object containing the !setlocal metadata)!setfoo: #foo=1 writes foo:1 metadata to the root scene-node)-- -These very simple principles allow for rich interactions and dynamic querying
-
See appendix below in case certain terms are not clear.
- -(XR) Macros can be embedded in 3D assets/scenes.
-Macros enrich existing spatial content with a lowcode, limited logic-layer, by recursive (economic) use of the querystring syntax (which search engines and XR Fragments already uses.
-This is done by allowing string/integer variables, and the | symbol to roundrobin variable values.
-Macros also act as events, so more serious scripting languages can react to them as well.
| key | -type | -example (JSON) | -function | -existing compatibility | -
|---|---|---|---|---|
@bg | 
-string | -"@bg":"#cube" | 
-bg: binds fog near/far based to cube x/y/z (anim) values | -custom property in 3D fileformats | -
@fog | 
-string | -"@fog":"#cube" | 
-fog: binds fog near/far based to cube x/y (anim) values | -custom property in 3D fileformats | -
@scroll | 
-string | -"@scroll":"#cube" | 
-texturescrolling: binds texture x/y/rot based to cube x/y/z (anim) values | -custom property in 3D fileformats | -
@emissive | 
-string | -"@emissive":"#cube" | 
-day/night/mood: binds material’s emissive value to cube x/y/z (anim) values | -custom property in 3D fileformats | -
| custom property | -value | -trigger when | -
|---|---|---|
| !clickme | -bg=1,1,1&foo=2 | -object clicked | -
| custom property | -value | -trigger when | -
|---|---|---|
| # | -foo=1 | -scene | -
| !clickme | -q=foo>2&bg=1,1,1 | -object clicked and foo > 2 | -
-- -when a user clicks an object with the custom properties above, it should set the backgroundcolor to
-1,1,1whenfoois greater than2(see previous example)
| custom property | -value | -trigger when | -
|---|---|---|
| !cycleme | -day|noon|night | -object clicked | -
| day | -bg=1,1,1 | -roundrobin | -
| noon | -bg=0.5,0.5,0.5 | -roundrobin | -
| night | -bg=0,0,0&foo=2 | -roundrobin | -
-- -when a user clicks an object with the custom properties above, it should trigger either
-daynoonornightin roundrobin fashion.
| custom property | -value | -trigger when | -
|---|---|---|
| # | -random | -scene loaded | -
| #random | -random | -URL contains #random | -
| !random | -day|noon|night | -#random, # or click | -
| day | -bg=1,1,1 | -roundrobin | -
| noon | -bg=0.5,0.5,0.5 | -roundrobin | -
| night | -bg=0,0,0&foo=2 | -roundrobin | -
| custom property | -value | -trigger when | -
|---|---|---|
| !random | -!day | -!noon | -
| !day | -bg=1,1,1 | -clicked in contextmenu | -
| !noon | -bg=0.5,0.5,0.5 | -clicked in contextmenu | -
| !night | -bg=0,0,0&foo=2 | -clicked in contextmenu | -
-- -When interacting with an object with more than one
-!-macro, the XR Browser should offer a contextmenu to execute a macro.
In a similar way, when any !-macro is present on the sceneroot, the XR Browser should offer a context-menu to execute those macro’s.
click object with (!clickme:AR or !clickme: !reset e.g.)
  β»
-  β  
-  βββ does current object contain this property-key (`AR` or `!reset` e.g.)?
-         βββ no: is there any (root)object containing property `AR`
-           βββ yes: evaluate its (roundrobin) XR macro-value(s) (and exit)
-           βββ no: trigger URL: #AR 
-
-
-click object with (!clickme:#AR|#VR e.g.)
  β»
-  β  
-  βββ apply the roundrobin (rotate the options, value `#AR` becomes `#VR` upon next click)
-      βββ is there any object with property-key (`#AR` e.g.)?
-         βββ no: just update the URL to `#AR`
-           βββ yes: apply its value to the scene, and update the URL to `#AR`
-
-click object with (`!clickme`:`!foo|!bar|!flop` e.g.)
-
-
-β»
-  β
-  βββ apply the roundrobin (rotate the options, value !foo becomes !bar upon next click)
-      βββ is there any object with property-key (!foo e.g.)?
-         βββ no: do nothing
-           βββ yes: apply its value to the scene
-“`
-- -Note that only macro’s can trigger roundrobin values or contextmenu’s, as well as roundrobin values never ending up in the toplevel URL.
-
This document has no IANA actions.
- -| definition | -explanation | -
|---|---|
| scene | -a (local/remote) 3D scene or 3D file (index.gltf e.g.) | -
| 3D object | -an object inside a scene characterized by vertex-, face- and customproperty data. | -
| XR fragments | -URI Fragment with spatial hints like #pos=0,0,0&t=1,100 e.g. | 
-
| query | -an URI Fragment-operator which queries object(s) from a scene like #q=cube | 
-
| FPS | -frames per second in spatial experiences (games,VR,AR e.g.), should be as high as possible | -
β» | 
-ascii representation of an 3D object/mesh | -
| (un)obtrusive | -obtrusive: wrapping human text/thought in XML/HTML/JSON obfuscates human text into a salad of machine-symbols and words | -
NOTE: The chapters in this document are ordered from highlevel to lowlevel (technical) as much as possible -
These very simple principles allow for rich interactions and dynamic querying -
| key | -type | -example (JSON) | -function | -existing compatibility | -
|---|---|---|---|---|
| @bg | -string | -"@bg":"#cube" | -bg: binds fog near/far based to cube x/y/z (anim) values | -custom property in 3D fileformats | -
| @fog | -string | -"@fog":"#cube" | -fog: binds fog near/far based to cube x/y (anim) values | -custom property in 3D fileformats | -
| @scroll | -string | -"@scroll":"#cube" | -texturescrolling: binds texture x/y/rot based to cube x/y/z (anim) values | -custom property in 3D fileformats | -
| @emissive | -string | -"@emissive":"#cube" | -day/night/mood: binds material's emissive value to cube x/y/z (anim) values | -custom property in 3D fileformats | -
| custom property | -value | -trigger when | -
|---|---|---|
| !clickme | -bg=1,1,1&foo=2 | -object clicked | -
| custom property | -value | -trigger when | -
|---|---|---|
| # | -foo=1 | -scene | -
| !clickme | -q=foo>2&bg=1,1,1 | -object clicked and foo > 2 | -
when a user clicks an object with the custom properties above, it should set the backgroundcolor to 1,1,1 when foo is greater than 2 (see previous example) -
| custom property | -value | -trigger when | -
|---|---|---|
| !cycleme | -day|noon|night | -object clicked | -
| day | -bg=1,1,1 | -roundrobin | -
| noon | -bg=0.5,0.5,0.5 | -roundrobin | -
| night | -bg=0,0,0&foo=2 | -roundrobin | -
when a user clicks an object with the custom properties above, it should trigger either day noon or night in roundrobin fashion. -
| custom property | -value | -trigger when | -
|---|---|---|
| # | -random | -scene loaded | -
| #random | -random | -URL contains #random | -
| !random | -day|noon|night | -#random, # or click | -
| day | -bg=1,1,1 | -roundrobin | -
| noon | -bg=0.5,0.5,0.5 | -roundrobin | -
| night | -bg=0,0,0&foo=2 | -roundrobin | -
| custom property | -value | -trigger when | -
|---|---|---|
| !random | -!day | -!noon | -
| !day | -bg=1,1,1 | -clicked in contextmenu | -
| !noon | -bg=0.5,0.5,0.5 | -clicked in contextmenu | -
| !night | -bg=0,0,0&foo=2 | -clicked in contextmenu | -
When interacting with an object with more than one !-macro, the XR Browser should offer a contextmenu to execute a macro. -
Note that only macro's can trigger roundrobin values or contextmenu's, as well as roundrobin values never ending up in the toplevel URL. -
| definition | -explanation | -
|---|---|
| scene | -a (local/remote) 3D scene or 3D file (index.gltf e.g.) | -
| 3D object | -an object inside a scene characterized by vertex-, face- and customproperty data. | -
| XR fragments | -URI Fragment with spatial hints like #pos=0,0,0&t=1,100 e.g. | -
| query | -an URI Fragment-operator which queries object(s) from a scene like #q=cube | -
| FPS | -frames per second in spatial experiences (games,VR,AR e.g.), should be as high as possible | -
| β» | -ascii representation of an 3D object/mesh | -
| (un)obtrusive | -obtrusive: wrapping human text/thought in XML/HTML/JSON obfuscates human text into a salad of machine-symbols and words | -