implement flexible application structure

The intended use case of this modification is for
workspaces that share the same structure.  This way, a
single application structure can be used and easily
cloned for different workspaces, allowing run-time
creation of app structure without any trouble.