Added UiComponent for things with an UI, and a base class with a create method.