diff --git a/doc/ccm-cms/ccm-cms.png b/doc/ccm-cms/ccm-cms.png
new file mode 100644
index 000000000..6ca0174fb
Binary files /dev/null and b/doc/ccm-cms/ccm-cms.png differ
diff --git a/doc/ccm-cms/ccm-cms.puml b/doc/ccm-cms/ccm-cms.puml
new file mode 100644
index 000000000..f718be135
--- /dev/null
+++ b/doc/ccm-cms/ccm-cms.puml
@@ -0,0 +1,15 @@
+@startuml
+
+title ccm-cms
+
+!include ../ccm-core/com.arsdigita.kernel.iuml
+!include ../ccm-core/com.arsdigita.auditing.iuml
+!include ../ccm-core/com.arsdigita.categorization.iuml
+!include ../ccm-core/com.arsdigita.formbuilder.iuml
+!include ../ccm-core/com.arsdigita.notification.iuml
+!include ../ccm-core/com.arsdigita.portal.iuml
+!include ../ccm-core/com.arsdigita.versioning.iuml
+!include ../ccm-core/com.arsdigita.web.iuml
+!include ../ccm-core/com.arsdigita.workflow.simple.iuml
+
+@enduml
\ No newline at end of file
diff --git a/doc/ccm-core/ccm-core.png b/doc/ccm-core/ccm-core.png
index 55dcee442..6e1045723 100644
Binary files a/doc/ccm-core/ccm-core.png and b/doc/ccm-core/ccm-core.png differ
diff --git a/doc/ccm-core/ccm-core.puml b/doc/ccm-core/ccm-core.puml
index 5b2b646a5..940bfe57f 100644
--- a/doc/ccm-core/ccm-core.puml
+++ b/doc/ccm-core/ccm-core.puml
@@ -14,5 +14,12 @@ title "
ccm-core
"
!include com.arsdigita.persistence.iuml
!include com.arsdigita.portal.iuml
!include com.arsdigita.preferences.iuml
+!include com.arsdigita.runtime.iuml
+!include com.arsdigita.search.iuml
+!include com.arsdigita.ui.iuml
+!include com.arsdigita.versioning.iuml
+!include com.arsdigita.web.iuml
+!include com.arsdigita.webdevsupport.iuml
+!include com.arsdigita.workflow.simple.iuml
@enduml
diff --git a/doc/ccm-core/ccm-core_applications.puml b/doc/ccm-core/ccm-core_applications.puml
new file mode 100644
index 000000000..3348a7f68
--- /dev/null
+++ b/doc/ccm-core/ccm-core_applications.puml
@@ -0,0 +1,9 @@
+@startuml
+
+title ccm-core Application(s)
+
+!include com.arsdigita.kernel.iuml
+!include com.arsdigita.web.iuml
+!include com.arsdigita.ui.iuml
+
+@enduml
\ No newline at end of file
diff --git a/doc/ccm-core/ccm-core_com.arsdigita.categorization.puml b/doc/ccm-core/ccm-core_com.arsdigita.categorization.puml
new file mode 100644
index 000000000..06b70dc15
--- /dev/null
+++ b/doc/ccm-core/ccm-core_com.arsdigita.categorization.puml
@@ -0,0 +1,8 @@
+@startuml
+
+title ccm-core/com.arsdigita.categorization
+
+!include com.arsdigita.categorization.iuml
+!include com.arsdigita.kernel.iuml
+
+@enduml
\ No newline at end of file
diff --git a/doc/ccm-core/ccm-core_com.arsdigita.formbuilder.puml b/doc/ccm-core/ccm-core_com.arsdigita.formbuilder.puml
new file mode 100644
index 000000000..34e179a45
--- /dev/null
+++ b/doc/ccm-core/ccm-core_com.arsdigita.formbuilder.puml
@@ -0,0 +1,8 @@
+@startuml
+
+title ccm-core/com.arsdigita.formbuilder
+
+!include com.arsdigita.kernel.iuml
+!include com.arsdigita.formbuilder.iuml
+
+@enduml
\ No newline at end of file
diff --git a/doc/ccm-core/ccm-core_com.arsdigita.permissions.puml b/doc/ccm-core/ccm-core_com.arsdigita.permissions.puml
new file mode 100644
index 000000000..9549c02e9
--- /dev/null
+++ b/doc/ccm-core/ccm-core_com.arsdigita.permissions.puml
@@ -0,0 +1,8 @@
+@startuml
+
+title ccm-core/com.arsdigita.permissions
+
+!include com.arsdigita.kernel.iuml
+!include com.arsdigita.kernel.permissions.iuml
+
+@enduml
\ No newline at end of file
diff --git a/doc/ccm-core/ccm-core_com.arsdigita.persistence.puml b/doc/ccm-core/ccm-core_com.arsdigita.persistence.puml
new file mode 100644
index 000000000..8aedb855f
--- /dev/null
+++ b/doc/ccm-core/ccm-core_com.arsdigita.persistence.puml
@@ -0,0 +1,8 @@
+@startuml
+
+title ccm-core/com.arsdigita.persistence
+
+!include com.arsdigita.kernel.iuml
+!include com.arsdigita.persistence.iuml
+
+@enduml
\ No newline at end of file
diff --git a/doc/ccm-core/ccm-core_com.arsdigita.portal.puml b/doc/ccm-core/ccm-core_com.arsdigita.portal.puml
new file mode 100644
index 000000000..9a4f0475f
--- /dev/null
+++ b/doc/ccm-core/ccm-core_com.arsdigita.portal.puml
@@ -0,0 +1,8 @@
+@startuml
+
+title ccm-core/com.arsdigita.portal
+
+!include com.arsdigita.kernel.iuml
+!include com.arsdigita.portal.iuml
+
+@enduml
\ No newline at end of file
diff --git a/doc/ccm-core/ccm-core_com.arsdigita.workflow.simple.puml b/doc/ccm-core/ccm-core_com.arsdigita.workflow.simple.puml
new file mode 100644
index 000000000..2fa39bc3e
--- /dev/null
+++ b/doc/ccm-core/ccm-core_com.arsdigita.workflow.simple.puml
@@ -0,0 +1,8 @@
+@startuml
+
+title ccm-core/com.arsdigita.workflow.simple
+
+!include com.arsdigita.kernel.iuml
+!include com.arsdigita.workflow.simple.iuml
+
+@enduml
\ No newline at end of file
diff --git a/doc/ccm-core/ccm-core_key_entities.puml b/doc/ccm-core/ccm-core_key_entities.puml
new file mode 100644
index 000000000..b4c329c6a
--- /dev/null
+++ b/doc/ccm-core/ccm-core_key_entities.puml
@@ -0,0 +1,25 @@
+@startuml
+
+@startuml
+
+title "ccm-core Primary entities"
+
+!include com.arsdigita.auditing.iuml
+!include com.arsdigita.categorization.iuml
+!include com.arsdigita.formbuilder.iuml
+!include com.arsdigita.kernel.iuml
+!include com.arsdigita.kernel.permissions.iuml
+!include com.arsdigita.messaging.iuml
+!include com.arsdigita.notification.iuml
+!include com.arsdigita.persistence.iuml
+!include com.arsdigita.portal.iuml
+!include com.arsdigita.ui.iuml
+!include com.arsdigita.versioning.iuml
+!include com.arsdigita.web.iuml
+!include com.arsdigita.webdevsupport.iuml
+!include com.arsdigita.workflow.simple.iuml
+
+@enduml
+
+
+@enduml
\ No newline at end of file
diff --git a/doc/ccm-core/ccm-core_messaging_notification.puml b/doc/ccm-core/ccm-core_messaging_notification.puml
new file mode 100644
index 000000000..90c803072
--- /dev/null
+++ b/doc/ccm-core/ccm-core_messaging_notification.puml
@@ -0,0 +1,9 @@
+@startuml
+
+title ccm-core Messaging and Notification
+
+!include com.arsdigita.kernel.iuml
+!include com.arsdigita.messaging.iuml
+!include com.arsdigita.notification.iuml
+
+@enduml
\ No newline at end of file
diff --git a/doc/ccm-core/ccm-core_supplementary_entities.puml b/doc/ccm-core/ccm-core_supplementary_entities.puml
new file mode 100644
index 000000000..9f436f2c1
--- /dev/null
+++ b/doc/ccm-core/ccm-core_supplementary_entities.puml
@@ -0,0 +1,12 @@
+@startuml
+
+title "ccm-core supplementary entities"
+
+!include com.arsdigita.cms.iuml
+!include com.arsdigita.globalization.iuml
+!include com.arsdigita.preferences.iuml
+!include com.arsdigita.runtime.iuml
+!include com.arsdigita.search.iuml
+
+
+@enduml
\ No newline at end of file
diff --git a/doc/ccm-core/ccm-core_versioning_auditing.puml b/doc/ccm-core/ccm-core_versioning_auditing.puml
new file mode 100644
index 000000000..6f756d62e
--- /dev/null
+++ b/doc/ccm-core/ccm-core_versioning_auditing.puml
@@ -0,0 +1,9 @@
+@startuml
+
+title ccm-core Versioning and Auditing
+
+!include com.arsdigita.kernel.iuml
+!include com.arsdigita.auditing.iuml
+!include com.arsdigita.versioning.iuml
+
+@enduml
\ No newline at end of file
diff --git a/doc/ccm-core/com.arsdigita.globalization.iuml b/doc/ccm-core/com.arsdigita.globalization.iuml
index 42b525902..c39a56301 100644
--- a/doc/ccm-core/com.arsdigita.globalization.iuml
+++ b/doc/ccm-core/com.arsdigita.globalization.iuml
@@ -1,8 +1,8 @@
namespace com.arsdigita.globalization {
- class Charset
- class Locale
- class MessageCatalog
+ class Charset <>
+ class Locale <>
+ class MessageCatalog <>
Charset -- Locale
MessageCatalog -- Locale
diff --git a/doc/ccm-core/com.arsdigita.kernel.iuml b/doc/ccm-core/com.arsdigita.kernel.iuml
index 3ebc4de48..1572edaf9 100644
--- a/doc/ccm-core/com.arsdigita.kernel.iuml
+++ b/doc/ccm-core/com.arsdigita.kernel.iuml
@@ -31,6 +31,6 @@ namespace com.arsdigita.kernel {
}
namespace com.arsdigita.kernel.security {
- class KeyStore
+ class KeyStore <>
}
diff --git a/doc/ccm-core/com.arsdigita.runtime.iuml b/doc/ccm-core/com.arsdigita.runtime.iuml
new file mode 100644
index 000000000..48bd8b0b1
--- /dev/null
+++ b/doc/ccm-core/com.arsdigita.runtime.iuml
@@ -0,0 +1,4 @@
+namespace com.arsdigita.runtime {
+
+ class Initializer <>
+}
\ No newline at end of file
diff --git a/doc/ccm-core/com.arsdigita.search.iuml b/doc/ccm-core/com.arsdigita.search.iuml
new file mode 100644
index 000000000..b9f6c5643
--- /dev/null
+++ b/doc/ccm-core/com.arsdigita.search.iuml
@@ -0,0 +1,10 @@
+namespace com.arsdigita.search.lucene {
+
+ class Document <>
+ class IndexId <>
+}
+
+namespace com.arsdigita.search.intermedia {
+
+ class SearchContent <>
+}
\ No newline at end of file
diff --git a/doc/ccm-core/com.arsdigita.ui.iuml b/doc/ccm-core/com.arsdigita.ui.iuml
new file mode 100644
index 000000000..934c4198d
--- /dev/null
+++ b/doc/ccm-core/com.arsdigita.ui.iuml
@@ -0,0 +1,20 @@
+namespace com.arsdigita.ui.Login {
+
+ class Login <>
+
+ com.arsdigita.web.Application <|-- Login
+}
+
+namespace com.arsdigita.ui.admin {
+
+ class Admin <>
+
+ com.arsdigita.web.Application <|-- Admin
+}
+
+namespace com.arsdigita.ui.permissions {
+
+ class Permissions <>
+
+ com.arsdigita.web.Application <|-- Permissions
+}
diff --git a/doc/ccm-core/com.arsdigita.versioning.iuml b/doc/ccm-core/com.arsdigita.versioning.iuml
new file mode 100644
index 000000000..c3f20a7d2
--- /dev/null
+++ b/doc/ccm-core/com.arsdigita.versioning.iuml
@@ -0,0 +1,26 @@
+namespace com.arsdigita.versioning {
+
+ class BlobOperation <>
+ class ClobOperation <>
+ class DataObjectChange <>
+ class EventType <>
+ class GenericOperation <>
+ class JavaClass <>
+ class Operation <>
+ class Tag <>
+ class Txn <>
+ class VersionedACSObject <>
+
+ com.arsdigita.kernel.ACSObject <|-- VersionedACSObject
+ Operation <|-- BlobOperation
+ Operation <|-- ClobOperation
+ Operation <|-- GenericOperation
+
+ DataObjectChange -- Txn
+ DataObjectChange --Operation
+ EventType -- Operation
+ JavaClass --Operation
+ Txn -- com.arsdigita.kernel.User
+ Txn -- Tag
+ Txn -- DataObjectChange
+}
\ No newline at end of file
diff --git a/doc/ccm-core/com.arsdigita.web.iuml b/doc/ccm-core/com.arsdigita.web.iuml
new file mode 100644
index 000000000..5ae55487a
--- /dev/null
+++ b/doc/ccm-core/com.arsdigita.web.iuml
@@ -0,0 +1,13 @@
+namespace com.arsdigita.web {
+
+ class Application <>
+ class ApplicationType <>
+ class Host <>
+
+ com.arsdigita.kernel.Resource <|-- Application
+ com.arsdigita.kernel.ResourceType <|-- ApplicationType
+
+ Application -- com.arsdigita.kernel.Group
+ ApplicationType -- com.arsdigita.kernel.permissions.Privilege
+ ApplicationType -- com.arsdigita.kernel.Group
+}
\ No newline at end of file
diff --git a/doc/ccm-core/com.arsdigita.webdevsupport.iuml b/doc/ccm-core/com.arsdigita.webdevsupport.iuml
new file mode 100644
index 000000000..503013ac9
--- /dev/null
+++ b/doc/ccm-core/com.arsdigita.webdevsupport.iuml
@@ -0,0 +1,6 @@
+namespace com.arsdigita.webdevsupport {
+
+ class WebDevSupport <>
+
+ com.arsdigita.web.Application <|-- WebDevSupport
+}
diff --git a/doc/ccm-core/com.arsdigita.workflow.simple.iuml b/doc/ccm-core/com.arsdigita.workflow.simple.iuml
new file mode 100644
index 000000000..ff4cf1a61
--- /dev/null
+++ b/doc/ccm-core/com.arsdigita.workflow.simple.iuml
@@ -0,0 +1,19 @@
+namespace com.arsdigita.workflow.simple {
+
+ class Task <>
+ class TaskComment <>
+ class UserTask <>
+ class Workflow <>
+ class WorkflowTemplate <>
+
+ com.arsdigita.kernel.ACSObject <|-- Task
+ Task <|-- UserTask
+ Task <|-- Workflow
+ Workflow <|-- WorkflowTemplate
+
+ Task -- TaskComment
+ UserTask -- com.arsdigita.kernel.User
+ UserTask -- com.arsdigita.kernel.Group
+ Workflow --Task
+ Workflow -- com.arsdigita.kernel.ACSObject
+}
\ No newline at end of file