Dynamically add a screen

Is there a way to programmatically add a new Screen, screen ID, screen class at run time ?
I want to give users ability to define a new screen (perhaps with simple layouts) and save the configuration into the DB. then add the new screen ID to the menu so that it can be used by others.

Which beans are involved in parsing the UI XML or registering the screen class and IDs ?