component explanation