explaned component types