Work in progress: chagnes so big that they looks like rewriting everything again.
Dirty commint, nothing works.
Added diagram in documentation how it will look after rewriting.