implemented Component Structure