add library entry point
update doc comments in ComponentDefinition
implement ComponentDefinitionBuilder