New data structure

If the `BaseComponent` constructor does not receive an `id` it generates a GUID for `this.id`