adding Component trait