# The File Structure of a CoB Server - Second Part
# Vital server directories and files
The directories found in this section are the most relevant and important to understand when we talk about the layout of the servers and their most vital files. For each of these, we must first get a better grasp of the layout of their internal directories before we can begin to explain their particular purpose. Below we include a brief description of some of the most important directories and files of both IntegrationM and RecordM.
# IntegrationM

actions
andconcurrent
- Every file that can be found in these directories will have a URL that can be invoked. These are groovy scripts that will have their own endpoint and can be run directly - in case you have the necessary permissions for it. A case scenario where this is very useful to is when we are implementing buttons in our application frontend that, when clicked, will immediately execute a groovy script, thus providing fast results from the back-end.
However, it is important to note, that the scripts stored in the actions
directory are blocking - each script cannot be ran before the one that is currently running finishes its work. There will be a First-In First-Out (FIFO) queue, and they will be executed one after the other. When these scripts are running, there is nothing else running involving integrationM.
On the contrary, the scripts in the concurrent
directory can be run concurrently - several scripts can be running at the same time - and there is a pool for currently running scripts.
Due to the nature of these scripts, the efficiency of the code is an important aspect. Since the scripts in the actions
directory halt the execution of IntegrationM for the rest of the application, we must make sure that that they do not take too much time while they are running,
common
- this directory is for storing code that will be used repeatedly throughout the application. If we do not want to waste space and memory by repeating the entire code block, we can put it here.scripts
- This is the most used subdirectory within the IntegrationM directory. It contains all the Groovy scripts that are automatically executed whenever a message is received, as explained elsewhere. These scripts tell the server how to act according to the type of the message and what is to be done with the information contained in each.
# RecordM

customUI
- This is the most important subdirectory within the RecordM directory. When first created,customUi
itself contains two subdirectories: one namedcss
and the otherjs
. Whilecss
stores acustomizations.css
file,js
stores acustomizations.js
file. Initially, When a server has just been created, these two files are completely empty. They are used to store modifications to the existing frontend configuration of an application or to execute code when the server starts.
We will go into greater depth about what changes to these folders and files are possible and how to apply them in this section.