Initial commit with UML diagram and ComponentType enum