# V13 Multi Site Mode - Site Sub-Project structure

**URL:** <https://community.bloomreach.com/t/v13-multi-site-mode-site-sub-project-structure/1281>\
**Category:** Experience Manager (PaaS/OnPrem)\
**Created:** [July 22, 2019, 12:37pm UTC](https://community.bloomreach.com/t/v13-multi-site-mode-site-sub-project-structure/1281 "2019-07-22T12:37:59Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![bkurent](https://avatars.discourse-cdn.com/v4/letter/b/8491ac/32.png) [@bkurent](https://community.bloomreach.com/u/bkurent)\
**Post date:** [July 22, 2019, 12:37pm UTC](https://community.bloomreach.com/t/v13-multi-site-mode-site-sub-project-structure/1281/1 "2019-07-22T12:37:59Z")

</div>

Hi,

I don’t fully understand workflow for adding CMS features in site sub-project described at

> **[Add a Second Delivery Webapp - Bloomreach Experience Manager...](https://xmdocumentation.bloomreach.com/trails/second-site-webapp/add-a-second-site-webapp.html)**
>
> The fast and flexible on-premise or PaaS headless CMS

and

> **[Multi Delivery Web Application Mode - Bloomreach Experience Manager...](https://xmdocumentation.bloomreach.com/library/concepts/multiple-site-web-applications/multi-site-mode.html)**
>
> The fast and flexible on-premise or PaaS headless CMS

Specifically, what is workflow if I add some Java classes inside cms module in site sub-project as part of some feature. This classes apparantly needs to be moved/migrated into corresponding cms module in parent sub-project and deleted in site sub-project.

Documentation says:

> In a stable site sub-project, the cms, cms-dependencies and repository-data/application modules should be empty.

After moving classes, how can I run site sub-project with this new cms feature? I guess I have to add dependency for parent sub-project cms module into site sub-project cms module like this?

> ```
> <dependency>
> <groupId>org.example</groupId>
> <artifactId>myproject-cms</artifactId>
> <version>0.1.0-SNAPSHOT</version>
> <classifier>classes</classifier>
> </dependency>
> 
> ```

I’m asking because there is no default dependency in site sub-project created from “hippo-site-project-archetype” archetype. Only parent sub-project repository-data/application module gets included in site sub-project via dependency on myproject-cms-dependencies.  
Is adding new dependecy (like above) the right approach?

---

<div class="post-metadata">

**Author:** ![niels.vankampenhout](https://yyz1.discourse-cdn.com/flex027/user_avatar/community.bloomreach.com/niels.vankampenhout/32/450_2.png) [@niels.vankampenhout](https://community.bloomreach.com/u/niels.vankampenhout)\
**Post date:** [July 22, 2019, 4:54pm UTC](https://community.bloomreach.com/t/v13-multi-site-mode-site-sub-project-structure/1281/2 "2019-07-22T16:54:44Z")

</div>

Good question. I agree that from the linked documentation and from the project structure generated by the hippo-site-project-archetype, it is not clear what the best practice is in your use case. Your suggestion (adding dependency to parent sub-project’s cms module) is one option, other options could be adding the classes to the parent sub-project’s cms-dependencies module, or creating a dedicated ‘cms-classes’ module in the parent sub-project and adding a dependency to it in the site sub-project’s cms module.

Perhaps someone from brXM platform team can chime in and give their opinion. If we can establish a best practice, I can amend the documentation accordingly.

Thanks,  
Niels  
(brXM technical writer)
