base and basic component structure